浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。
如果用代码来操作浏览器弹框,改变框的大小呢?
- window.open() - 打开新窗口
- window.close() - 关闭当前窗口
- window.moveTo() - 移动当前窗口
- window.resizeTo() - 调整当前窗口的尺寸
在想搞定操作浏览器的时候,现在了解下浏览器BOM对象模型 (Browser Object Model)。现在的浏览器已经实现了JavaScript交互性方面的相同方法和属性,因此常呗认为BOM的方法和属性。
window 对象
所有浏览器都支持window对象。它表示浏览器窗口。
所有的javaScript全局对象,函数以及变量均自动成为window对象成员。
全局函数是window对象的属性。
全局函数是window对象的方法。
甚至HTML DOM的document也是window对象之一。
window.document.getElementById("header");
改变window的尺寸
有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。
对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
- window.innerHeight - 浏览器窗口的内部高度
- window.innerWidth - 浏览器窗口的内部宽度或者
- document.documentElement.clientHeight
- document.documentElement.clientWidth
<script>
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
x=document.getElementById("demo");
x.innerHTML="浏览器的内部窗口宽度:" + w + ",高度:" + h + "。"
</script>
windowScreen
- screen.availWidth - 可用的屏幕宽度
- screen.availHeight - 可用的屏幕高度
Window Screen 可用宽度
screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。
window.location
- location.hostname 返回 web 主机的域名
- location.pathname 返回当前页面的路径和文件名
- location.port 返回 web 主机的端口 (80 或 443)
- location.protocol 返回所使用的 web 协议(http:// 或 https://)
window Location Href
<script>
document.write(location.href
);
</script>
Window Location Pathname
location.pathname 属性返回 URL 的路径名。
<script>
document.write(location.pathname
);
</script>
以上代码输出为:
/js/js_window_location.asp
Window Location Assign
location.assign() 方法加载新的文档。
实例
加载一个新的文档:
<html>
<head>
<script>
function newDoc()
{
window.location.assign("http://www.w3school.com.cn")
}
</script>
</head>
<body>
<input type="button" value="加载新文档" οnclick="newDoc()">
</body>
</html>
JavaScript Window History
window.history 对象在编写时可不使用window这个前缀。
为了保护用户隐私,对JavaScript访问该对象的方法做出了限制。