BOM
BOM的核心——window对象
窗口和弹窗
location对象——页面信息
navigator对象——浏览器信息
history对象——浏览器历史记录
BOM是使用JavaScript开发Web应用程序的核心。提供了与网页无关的浏览器功能对象。
浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间互操作的基础。
HTML5规范,涵盖了BOM的主要内容,希望将JavaScript在浏览器中最基础的部分标准化。
window对象
表示浏览器的实例。在浏览器中有两重身份:
一个是ECMAScript中的Global对象,
另一个是浏览器窗口的JavaScript接口。
因为window对象的属性在全局作用域中有效,所以很多浏览器API及相关构造函数都以window对象属性的形式暴露出来。
Global作用域
通过var声明的所有全局变量和函数都会变成window对象的属性和方法。
如果使用let或const替代var,则不会把变量添加给全局对象。
访问未声明的变量会抛出错误,但可以在window对象上查询是否存在可能未声明的变量,如:
var newValue = oldValue; // 抛出错误 ReferenceError: oldValue is not defined
var newValule = window.oldValue; // undefined
窗口关系
top对象始终指向最上层(最外层)窗口,即浏览器窗口本身。
parent对象始终指向当前窗口的父窗口。如果当前窗口是最上层窗口,则parent等于top(都等于window)。最上层的window如果不是通过window.open()
打开的,那么其name属性就不会包含值。
self对象,是终极window属性,始终会指向window。实际上,self和window是同一个对象。
这可以把访问多个窗口的window对象串联起来。(嵌套iframe页面)
窗口位置与像素比
- 获取位置,移动位置
现代浏览器提供了screenLeft和screenTop属性,用于表示窗口相对于屏幕左侧和顶部的位置,返回值的单位是CSS像素。
可以使用moveTo()和moveBy()方法移动窗口。都接收两个参数,moveTo接收要移动到的新位置的绝对坐标x和y;moveBy接收相对当前位置在两个方向上移动的像素数。
测试:FF可用——条件:通过window.open()打开,且只有一个标签页;Chrome不可用。
第一个参数,为负向左移动,为正则向右移动;第二个参数,为负向上移动,为正则向下移动。
依浏览器而定,可能会被部分或全部禁用。
- 像素比
不同像素密度的屏幕下就会有不同的缩放系数,以便把物理像素(屏幕实际的分辨率)转换为CSS像素(浏览器报告的虚拟分辨率)。
物理像素与CSS像素之间的转换比率由window.devicePixelRatio属性提供。
例子
标签:12,浏览器,URL,JavaScript,像素,window,BOM,open,location From: https://www.cnblogs.com/halftonine/p/16827823.html