window对象是浏览器环境中最顶级的对象,被称之为全局对象,其他对象都在其辖区内。我们熟悉的BOM模型和DOM中的对象也在其中。今天,主要介绍window对象的一些属性和方法。
属性名 | 值 |
---|---|
window | 、返回window |
self | 返回window |
document | 返回与窗口相关联的文档 |
name | 返回该窗口的名称。可以设置,以更改名称 |
location | 返回具有当前页面位置的位置对象。可以设置,以导航到另一个页面。 |
history | 返回此关联的文档的历史对象 |
customElements | 定义一个新的自定义元素,将给定的名称映射到给定的作为自主自定义元素的构造函数 |
locationbar | 位置栏属性必须返回位置栏BarProp对象 |
menubar | 菜单栏属性必须返回菜单栏BarProp对象 |
personalbar | 个人栏属性必须返回个人栏BarProp对象 |
scrollbars | 滚动条属性必须返回滚动条“栏道具”对象 |
toolbar | 工具栏属性必须返回工具栏BarProp对象 |
statusbar | 状态栏属性必须返回状态栏BarProp对象 |
fakeWorkerlet1 | 返回fakeWorkerlet1对象 |
fakeWorkerlet2 | 返回fakeWorkerlet2对象 |
sessionStorage | 返回与该窗口所在的源的会话存储区域相关联的Storage对象。如果文档的起源是不透明的原点,或者请求违反了策略决策(例如,如果用户代理被配置为不允许页面保存数据),则抛出“安全错误”域异常 |
localStorage | 返回与窗口的原点的本地存储区域相关联的Storage对象。如果文档的起源是不透明的原点,或者请求违反了策略决策(例如,如果用户代理被配置为不允许页面保存数据),则抛出“安全错误”域异常。 |
close() | 关闭窗口 |
closed | 如果窗口已关闭,则返回true,否则返回false |
stop() | 取消文档加载 |
focus() | 如果有的话,将焦点移动到窗口的可导航的 |
blur() | 将焦点移动到视口中。不鼓励使用此方法;如果要聚焦视口,请在文档的文档元素上调用焦点()方法。如果您发现对焦环很难看,请不要使用此方法来隐藏对焦环。相反,使用:焦点可见伪类来覆盖“轮廓”属性,并提供一种不同的方法来显示聚焦的元素。请注意,如果没有另一种对焦方式,对于那些主要使用键盘导航页面的人,或者那些使用对焦轮廓来帮助他们导航页面的人,该页面的可用性将会大大降低。 |
frames | |
length | 返回文档树子导航对象的数量 |
top | 返回顶级可遍历的WindowProxy |
opener | 返回窗口proxy为打开器浏览上下文。如果没有或已设置为null,则返回null。可以设置为空 |
parent | 返回父级可导航对象的WindowProxy |
frameElement | 返回可导航的容器元素。如果没有一个,则返回null,并且在跨起源的情况下 |
open([url,target,features]) | 打开一个窗口来显示url(默认值为“about:blank”),并返回它。目标(默认值为“_blank”)给出了新窗口的名称。如果已经存在具有该名称的窗口,则将重用它。特征参数可以包含一组经过逗号解析的标记 |
navigator | 每个Window都有一个关联的导航器,它是一个导航器对象。在创建Window对象时,必须将其关联的导航设置为在Window对象的相关领域中创建的新的导航对象.导航器和客户端信息获取器的步骤是返回此关联的导航器. |
clientInformation | 返回此关联的导航器 |
originAgentCluster | 如果此Window属于原始为keyed的代理集群,则返回true。 |
alert() | 显示包含给定消息的模式警报,并等待用户取消它。 |
alert(message) | 显示包含给定消息的模式警报,并等待用户取消它。 |
confirm([message]) | 使用给定消息显示模式确定/取消提示,等待用户取消,如果用户单击“确定”则返回true,如果用户单击“取消”则返回false。 |
prompt([message,default]) | 显示包含给定消息的模式文本控件提示符,等待用户关闭它,并返回用户输入的值。如果用户取消了提示符,则返回null。如果存在第二个参数,则将给定的值用作默认值。 |
print() | 提示用户打印该页面。 |
postMessage(message,targetOrigin[,transfer]) | 这是postMessage()的一个替代版本,其中目标原点被指定为一个参数。调用window.postMessage(消息、目标、传输)相当于window.postMessage(消息、{目标起源、传输}) |
postMessage(message[options]) | 发布一个到给定窗口的消息。消息可以是结构化对象,例如嵌套对象和数组,可以包含JavaScript值(字符串、数字、日期对象等),并可以包含某些数据对象,如文件块、文件列表和排列缓冲区对象。在选项的转移成员中列出的对象将被转移,而不仅仅是克隆,这意味着它们在发送端不再可用。可以使用选项中的目标起源成员来指定目标原点。如果没有提供,则默认为“/”。此默认值仅将消息限制为同一源目标。如果目标窗口的原点与给定的目标原点不匹配,则丢弃该消息,以避免信息泄漏。要将消息发送到目标,而不管原点如何,请将目标原点设置为“*”。如果传输数组包含重复的对象或消息无法被克隆时,将抛出一个“数据克隆错误”的域异常 |
setTimeout(handler[, timeout [, …arguments ] ]) | 在超时毫秒后运行处理程序。任何参数都将直接传递给处理程序。该函数返回一个id |
clearTimeout(id) | 使用由id标识的setTimeout()或setInterval()取消超时设置 |
setInterval(handler [, timeout [, …arguments ] ]) | 每一个超时毫秒调度一个超时以运行处理程序。任何参数都将直接传递给处理程序。该函数返回一个id |
clearInterval(id) | 取消setInterval()或setTimeout()的超时。 |
以上就是window的常用属性和方法。
示例
使用open()和postMessage进行页面间的通信。
在A页面中通过open() 打开另一个页面,然后会得到一个被打开页面的引用,使用这个引用调用postMessage()方法在另一个页面就能接收到消息。
<button id="btn">点击发送消息</button>
let btn = document.getElementById('btn');
let opener = window.open('./location.html');
btn.addEventListener('click', function(){
opener.postMessage('hello');
});
在被打开的页面中监听message事件,该事件会在发送消息时触发,即调用postMessage()方法。我们可以通过e.data获取到发送的具体内容。
window.addEventListener('message',function (e){
console.log(e,e.data);
});