权威指南读书笔记 window对象

计时器

setTimeOut(),setInterval() 与clearInterval 是客户端重要的全局函数,定义为window的重要方法,但是为通用函数,其实不会对窗口做什么事情。

setTimeOut()和setInterval()可以作为字符串传入。如果这么做,那个字符串会在指定的超时时间或间隔之后进行求值。html5还允许setTimeOut()和setInterval()传入额外参数,并在调用函数时把这些参数传递过去。

注意:

  • 如果是以0毫秒的时间来调用setTimeOut(),那么指定的函数不会立刻执行,相反他会把他插入到队列当中,等到前面处于等待状态的事件处理程序执行完成后,再立即调用它。
  • 如果想使用clearInterval 来清除掉循环器,那么与其配套的setInterval的参数应该是一个函数名,而非匿名函数。

URL

浏览器定位和导航可以使用 window的location对象 或者document.location.
两者是时时全等

window.location === document.location

document.url属性也可以获得页面的地址,但是这个地址是文档首次加载后保存文档的URL的静态字符串。如果定位到文档的片段标示符,location对象会更新,但是url不会。

location的属性

document.URL
"http://wiki.corp.qunar.com/pages/viewpage.action?pageId=68331893#name"
location.protocol
"http:"
location.host
"wiki.corp.qunar.com"
location.hostname
"wiki.corp.qunar.com"
location.port
""
location.pathname
"/pages/viewpage.action"
location.search
"?pageId=68331893"
location.hash
"#name"

重新载入文档方式

location.assgin()
location.replace()
location.reload()

location可写属性,可以使用绝对或是相对的方式设置页面,也可以设置他的属性。

    location='http://www.baidu.com';
    location='page2.html'//载入下一个页面
    location='#top'
    location.search='?page='+(page+1)

浏览历史

window.history 引用的是History对象,使用 back forward go控制。
历史解决方案 可以采用jquery。

navigator对象

该属性引用的是包含浏览器厂商和版本信息的Navigator对象。

navigator.appName
"Netscape"//除了IE以外 基本都市网景
navigator.appVersion
"5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4"
//标志为第四代还是第五代浏览器 没有标准的格式,因此不能使用它来判断浏览器类型
navigator.userAgent
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4"
//浏览器嗅探通常使用该属性进行判断,通常使用正则表单式进行判断
navigator.platform
"MacIntel"
//浏览器运行的操作系统
navigator.onLine
true//表示是否联网

Screen 对象

属性availWidth和availHeight指的是实际可用的显示大小,他排除了像桌面任务栏这样的特性所占的空间。
属性colorDepath表示bits-per-pixel 的值

对话框

    alert();
    confirm();
    prompt();

confirm 和 prompt会产生阻塞 。alert在不同浏览器里表现不同,有的浏览器中也会产生阻塞。

错误处理

onerror属性是一个事件处理函数,当未捕获的异常传播到调用栈上时就会调用它。
三个参数,第一个是描述错误的消息,第二参数是一个字符串,它存放引发错误的Javascript代码所在的文档的Url。第三参数是文档中发生错误的行数。

window.onerror = function(msg,url,line){
    if(onerror.num++ < onerror.max){
        alert("Error:" + msg + "\n" + url + ":" + line);
        return true;
    }   
}
onerror.max = 3;
onerror.num = 0;

推荐阅读更多精彩内容