JavaScript系列之BOM

目尽地平线 2019-07-01

如果以0毫秒的超时时间来调用setTimeout(),那么指定的函数不会立刻执行。相反,会把它放到队列中,等到前面处于等待状态的事件处理程序全部执行完成后,再“立即”调用它。

frames[]数组里的元素是Window对象,而不是<iframe>元素。
window.frames[0]返回的是window对象
window.frames[iframeName]返回的是DOM对象

可以使用<iframe>的元素的name或id属性作为JavaScript代码中的引用标识。但如果使用name属性的话,所指定的name同样也会成为代表这个窗体的Window对象的name属性。以这种方式给出的名字可以用做一个链接的target属性,而且它可以用做window.open()的第二个参数。

在由window.open()方法创建的窗口中,opener属性引用的数打开它的脚本的window对象。

任何窗口或窗体中的JavaScript代码都可以将自己的窗口和窗体引用为window或self。窗体可以用parent属性引用包含它的窗口或窗体的Window对象。top属性是一个通用的快捷方式,无论一个窗体被嵌套了几层,它的top属性引用的都是指向包含它的顶级窗口。

如果一个窗口是顶级窗口或标签,而不是窗体,那么其parent属性引用的就是这个窗口本身:

parent==self;//只有顶级窗口才会返回true

表示顶级窗口的Window对象的frameElement属性为null,窗体中的Window对象的frameElement属性不是null。

var ele = document.getElementById('#myIframe')
var win = iframe.contentWindow
win .frameElement === ele
window.frameElement === null

浏览器历史

history.forward()
history.back()
history,go(-1)
pushState(state,[title],[url])
replaceState(state,[title],[url])
popstate事件,与该事件相关联的事件对象有一个state属性,该属性包含传递给pushState()方法的状态对象的副本(结构性复制)。
location.hash和hashchange事件

浏览器导航

navigator.userAgent

错误处理

window.onerror=function(msg,url,line){}

对话框

alert()
prompt()  //返回字符串
confirm() //返回布尔值

相关推荐