JavaScript权威指南读书笔记——第十四章 Window对象

计时器

setTimeout()

Window对象的setTimeout()方法用来实现一个函数在指定的毫秒数之后运行。该函数返回一个值,这个值可以传递给clearTimeout()用于取消这个函数运行。

setInterval()

和setTimeout()一样,setInterval()函数也返回一个值,这个值可以传递给clearInterval()用于取消后续函数的调用。

function invoke(f, start, interval, end){
    if (!start){
        start = 0;
    }
    if (arguments.length <= 2){
        setTimeout(f,start);
    }
    else{
        setTimeout(repeat, start);
        function repeat(){
            var h = setInterval(f, interval);
            if (end){
                setTimeout(function(){clearInterval(h)}, end);
            }
        }
    }
}

浏览器定位和导航

Document对象的location属性和Window对象的location属性都引用了Location对象。

//  true
window.location === document.location;

Document对象还有一个URL属性,是文档首次载入后保存该文档的URL静态字符串。

解析URL

location

  • href
  • protocal
  • host
  • hostname
  • port
  • pathname
  • hash描述片段标识符
  • search描述查询字符串

载入新的文档

修改location.href或调用location.assign(),这修改方式其实是一种意思。

调用location.replace(),他在载入新文档之前会从浏览器历史清空。

还有个reload(),重新载入当前文档。

历史记录

Window对象的history属性引用的是该窗口的History对象。History对象额length属性表示浏览器历史列表中的元素数量。出于安全的因素,脚本不能访问已保存的URL。

History对象的back()和forward()方法与浏览器的“后退”和“前进”按钮一样。还有个go()方法,接收一个整数参数,可以在历史列表中向前(正参数)或向后(负参数)跳过任意多个页。

浏览器和屏幕信息

Navigator对象

  • appName属性
    • Web浏览器的全称
  • appVersion
    • 次属性通常以数字开始,并跟着包含浏览器厂商和版本信息的详细字符串
  • userAgent
    • 浏览器在它的SET_AGENT HTTP头部中发送的字符串
  • platform
    • 在其上运行浏览器的操作系统字符串
  • onLine
    • 表示浏览器但是是否连接到网络
  • geolocation
    • Geolocation对象定于用于确定用户地理位置信息
  • javaEnabled()
    • 当前浏览器可以运行java小程序时放回true(非标准的方法)
  • cookiedEnable()
    • 如果浏览器可以保存永久的cookie时,返回true(非标准的方法)

Screen对象

Window对象的screen属性引用的是Screen对象。

属性width和height指定的是以像素为单位的窗口大小

属性availWidth和availHeight指定的是实际可用的显示大小

colorDepth指定的是BPP(bits-per-picel)

对话框

alert()用来像用户显示一条消息。在大部分浏览器中该方法会阻塞

confirm()也可以显示一条消息,要求用户单击“确定”或“取消”按钮,并返回一个布尔值。该方法会阻塞

prompt()同样也显示一条消息,等待用户输入字符串,并放回那个字符串。该方法会阻塞

showModalDialog()显示一个保护HTML格式的“模态对话框”。第一个参数指定对话框HTML的URL。第二个参数是一个任意值,这个值在对话框的脚步中可以通过window.dialogArguments属性访问。第三个参数是非标准的,包含以分号隔开的name=value对。showModalDialog()这个方法指导窗口关闭之前不会放回。当窗口关闭后,window.returnValue属性的值就是次方法返回值。

作为Window对象属性的文档元素

如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,他的名字是id属性的值,而他们的值纸箱表示文档元素的HTMLElement对象。

多窗口和窗体

打开窗口

使用Window对象的open()方法可以打开一个新的浏览器窗口,并返回代表那个窗口的Window对象。

它有4个可选的参数。

第一个参数是要在新窗口中显示文档的URL。

第二个参数是新打开的窗口的名字。如果知道的是一个已经存在的窗口的名字,会直接使用已存在的窗口。如果省略此参数,会使用指定的名字“_blank”。

  • _blank
    • 新窗口
  • _self
    • 自身
  • _parent
    • 父窗口
  • _top
    • 顶级祖先窗口

Window对象如果有name属性,就用它保存窗口名字。该属性是可写的,并且脚步可以随意设置。如果传递给window.open()一个除“_blank”之外的名字,通过该调用创建的窗口将以该名字作为name属性的初始值。如果