BOM编程,全称 Browser Object Model,浏览器对象模型。
JavaScript是由浏览器中内置的javascript脚本解释器程序来执行javascript脚本语言的。
为了便于对浏览器的操作,javascript封装了对浏览器的各个对象使得开发者可以方便的操作浏览器。
一、Window 对象
所有浏览器都支持 window 对象。它表示浏览器窗口。
所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
全局变量是 window 对象的属性。
全局函数是 window 对象的方法。
甚至 HTML DOM 的 document 也是 window 对象的属性之一:
window.document.getElementById("header");
与此相同
document.getElementById("header");
二、Window对象的方法
方法:定时器
函数名 | 描述 |
---|---|
setInterval() | 按照指定的周期(以毫秒计)来调用函数或计算表达式 |
clearInterval() | 取消由 setInterval() 设置的 timeout。 |
setTimeout() | 在指定的毫秒数后调用函数或计算表达式。 |
clearTimeout() | 取消由 setTimeout() 方法设置的 timeout |
方法:窗口开关
函数名 | 描述 |
---|---|
window.open() | 打开新窗口 |
window.close() | 关闭当前窗口 |
window.moveTo() | 移动当前窗口 |
window.resizeTo() | 调整当前窗口的尺寸 |
方法:消息框
函数名 | 描述 |
---|---|
alert() | 显示带有一段消息和一个确认按钮的警告框。![]() |
confirm() | 显示带有一段消息以及确认按钮和取消按钮的确认框。确认框: 确定返回true,取消返回false![]() |
prompt() | 显示可提示用户输入的提示框。点击确定获得用户输入数据![]() |
三、Window Screen
window.screen对象在编写时可以不使用 window 这个前缀。
一些属性:
- screen.availWidth - 可用的屏幕宽度
- screen.availHeight - 可用的屏幕高度
Window Screen 可用宽度
screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。
返回您的屏幕的可用宽度:
<script>
document.write("可用宽度: " + screen.availWidth);
</script>
以上代码输出为:
可用宽度: 1280
Window Screen 可用高度
screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。
返回您的屏幕的可用高度:
<script>
document.write("可用高度: " + screen.availHeight);
</script>
以上代码将输出:
可用高度: 690
四、Window Location
- location.hostname 返回 web 主机的域名
- location.host 返回 web 主机的域名(包含端口)
- location.pathname 返回当前页面的路径和文件名
- location.port 返回 web 主机的端口 (80 或 443,如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符)
- location.protocol 返回所使用的 web 协议(http:// 或 https://)
- location.href 属性返回当前页面的 URL
- location.search 返回?后面部分(包含?)
- location.hash 返回锚点(返回值:#xxx)
window.location对象常用方法
- location.assign() 加载一个新的文档,就相当于一个链接,跳转到指定的url
- location.reload() 重新加载当前文档,没有参数或者参数是 false,它就会用 HTTP 头If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload()会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。如果该方法的参数为true,那么会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。
- location.replace() 用一个新文档取代当前文档,不会在 History 对象中生成一个新的记录。当使用该方法时,新的URL 将覆盖 History 对象中的当前记录。
五、Window History
window.history对象在编写时可不使用 window 这个前缀。
为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
一些方法:
- history.back() - 与在浏览器点击后退按钮相同
- history.forward() - 与在浏览器中点击按钮向前相同
history.back() 方法加载历史列表中的前一个 URL。
这与在浏览器中点击后退按钮是相同的:
<html>
<head>
<script>
function goBack()
{
window.history.back()
}
</script>
</head>
<body>
<input type="button" value="Back" onclick="goBack()">
</body>
</html>
history forward() 方法加载历史列表中的下一个 URL。
这与在浏览器中点击前进按钮是相同的:
<html>
<head>
<script>
function goForward()
{
window.history.forward()
}
</script>
</head>
<body>
<input type="button" value="Forward" onclick="goForward()">
</body>
</html>
六、Window Navigator
window.navigator 对象在编写时可不使用 window 这个前缀。
<div id="example"></div>
<script>
txt = "<p>浏览器代号: " + navigator.appCodeName + "</p>";
txt+= "<p>浏览器名称: " + navigator.appName + "</p>";
txt+= "<p>浏览器版本: " + navigator.appVersion + "</p>";
txt+= "<p>启用Cookies: " + navigator.cookieEnabled + "</p>";
txt+= "<p>硬件平台: " + navigator.platform + "</p>";
txt+= "<p>用户代理: " + navigator.userAgent + "</p>";
txt+= "<p>用户代理语言: " + navigator.systemLanguage + "</p>";
document.getElementById("example").innerHTML=txt;
</script>