hanyuxinting / Blog

记录点滴
1 stars 0 forks source link

JS权威指南-windows对象 #12

Open hanyuxinting opened 7 years ago

hanyuxinting commented 7 years ago

计时器。

setTimeout setInterval 这两个都是全局函数。 宿主为 windows 由setTimeout()调用的代码运行在与所在函数完全分离的执行环境上. 这会导致,这些代码中包含的 this 关键字会指向 window (或全局)对象,这和所期望的this的值是不一样的. 以0ms的超时时间来调用,指定的函数不一定会立即执行。会放在队列里,等到前面处于等待状态的事件处理程序全部执行完,再立即调用~~

Location对象 定位和导航

表示窗口当前显示的文档的url,并定义方法使窗口载入新文档。

window.location == document.location

window和Document 都引用了Location对象。

document.URL 属性:文档首次载入后保存该文档的URL的静态字符串。

URL

Location.toString() 默认返回 location.href... location.hash location.search location.assign() 会存在history location.replace() 之前的会被干掉,之前的不会存history。 location = '#top' 锚点定位到锚点的位置

History

back() forward() go(-2) 前 go(2) 后

iframe 会影响back forward,它会被计入到步数里~~

HTML5中的 pushState、popState

Navigator

浏览器嗅探。。现在直接判断支不支持某个方法就好了。因为浏览器的 userAgent 越来越复杂了,我不喜欢三六零浏览器。 解决某个特定浏览器的特定版本的特殊bug。。。。 它的四个属性: appName appVersion userAgent platform

Screen

窗口显示的大小和可用颜色数量的信息。 width\height availWidth\availHeight 实际可用的显示大小。去掉桌面任务栏这种。

colorDepth pixelDepth 等!

跟这玩意不一样呀! https://developer.mozilla.org/en-US/docs/Web/API/Window

对话框

alert yes。不怎么阻塞?额。 confirm ok、不ok? 必然阻塞! prompt 等输入。必然阻塞!

showModalDialog

算了还是用自定义的吧。

错误处理

onerror

当id成为Windows对象属性级别的时候

所以不要给你的元素设置那么多id,还要为id是否重名伤神,累不累。

多窗口和窗体

?嘛? 这里不考虑打开多个tab或多个浏览器窗口的那种多窗口。。

是的,这里说的是 iframe。。。 对于JS来说,窗口、标签页、iframe、frameset(已废弃)都是浏览上下文,都是爷,都是window对象。

iframe和独立窗口 标签页的不同在于它的上下文,js都可以看到,它的祖先和子窗体都可以。 但这些受 同源策略 的限制!

但是但是!HTML5 说了,给你:PostMessage。来吧消息侦听,你可以!

打开、关闭窗口

open() opener close(): 自己创建的,以及顶级window对象。否则没用!

窗体间的关系

parent self top?