浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器 "对话".
浏览器对象模型 (Browser Object Model)
尚无正式标准. 由于现代浏览器已经 (几乎) 实现了 JavaScript 交互性方面的相同方法和属性, 因此常被认为是 BOM 的方法和属性.
1 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
实用的 JavaScript 方案(涵盖所有浏览器):
- var w=window.innerWidth
- || document.documentElement.clientWidth
- || document.body.clientWidth;
- var h=window.innerHeight
- || document.documentElement.clientHeight
- || document.body.clientHeight;
其他 Window 方法
一些其他方法:
window.open() - 打开新窗口
window.close() - 关闭当前窗口
window.moveTo() - 移动当前窗口
window.resizeTo() - 调整当前窗口的尺寸
2 JavaScript Window Location
获得当前页面的地址 (URL), 并把浏览器重定向到新的页面
2.1 Window Location
window.location 对象在编写时可不使用 window 这个前缀.
一些例子:
location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443)
location.protocol 返回所使用的 web 协议(http:// 或 https://)
2.2 Window Location Href
属性返回当前页面的 URL.
实例
返回 (当前页面的) 整个 URL:
- <script>
- document.write(location.href);
- </script>
以上代码输出为:
- http://www.w3school.com.cn/js/js_window_location.asp
- 2.3 Window Location Pathname
location.pathname 属性返回 URL 的路径名.
实例
返回当前 URL 的路径名:
- <script>
- document.write(location.pathname);
- </script>
以上代码输出为:
- /js/js_window_location.asp
- 2.4 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="加载新文档" onclick="newDoc()">
- </body>
- </html>
来源: http://www.jianshu.com/p/21ff4df23b63