浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。
浏览器对象模型 (BOM)
浏览器对象模型(Browser Object Model (BOM))尚无正式标准。
由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。
Window 对象
所有浏览器都支持 window 对象。它表示浏览器窗口。
所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
全局变量是 window 对象的属性。
全局函数是 window 对象的方法。
甚至 HTML DOM 的 document 也是 window 对象的属性之一:
window.document.getElementById("header");
与此相同:
document.getElementById("header");
Window 尺寸
有三种方法能够确定浏览器窗口的尺寸。
- 对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
window.innerHeight
- 浏览器窗口的内部高度(包括滚动条)
window.innerWidth
- 浏览器窗口的内部宽度(包括滚动条) - 对于 Internet Explorer 8、7、6、5:
document.documentElement.clientHeight
document.documentElement.clientWidth
- 或者
document.body.clientHeight
document.body.clientWidth
例:
<p id="demo"></p>
<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="浏览器window宽度: " + w + ", 高度: " + h + "。"
</script>
其他 Window 方法
一些其他方法:
window.open() - 打开新窗口
window.close() - 关闭当前窗口
window.moveTo() - 移动当前窗口
window.moveTo(x, y)
x is the horizontal coordinate to be moved to.
y is the vertical coordinate to be moved to.
例子:
<html>
<body>
<script type="text/javascript">
myWindow=window.open('','','width=200,height=100')
myWindow.document.write("This is 'myWindow'")
myWindow.moveTo(0,0)
</script>
</body>
</html>
window.resizeTo() - 调整当前窗口的尺寸
window.resizeTo(aWidth, aHeight)
aWidth is an integer representing the new outerWidth in pixels (including scroll bars, title bars, etc).
aHeight is an integer value representing the new outerHeight in pixels (including scroll bars, title bars, etc).
例子:
<html>
<body>
<button onclick="window.resizeTo(500,500)">缩小窗口</button>
</body>
</html>