BOM编程:window对象

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);
});

猜你喜欢

转载自blog.csdn.net/qq_40850839/article/details/128537813