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);
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端御书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值