客户端Javascript学习笔记-----Window对象

计时器

setTimeout()和setInteval()可以用来注册在指定的时间之后单次或重复调用的函数。
两个函数的返回值可以传递给clearTimeout和clearInterval(),用于取消这个函数的执行。





Insert title here




 

定位和导航

Window对象的location属性引用Location对象,表示该窗口中显示的文档的URL,并定义了方法来使窗口载入新的文档。

解析URL

Location对象的href属性是一个字符串,包含URL的完整文本。





Insert title here






载入新文档

Location对象的assign()方法可以使窗口载入并显示指定的URL中的文档,replace()方法类似,但它在载入新文档之前会从浏览历史中把当前文档删除。

除了assgin()和replace()方法,Location对象还定义了reload方法,可以让浏览器重新载入当前文档。

使浏览器跳转到新页面的一种更传统的方法是直接把新的URL赋给location属性:

       location =  "page2.html";

纯粹的片段标示符是相对URL的一种类型,它不会让浏览器载入新文档,只会使它滚动到文档的某个位置。 #top标示符是个特殊的例子,如果文档中没有元素的ID是TOP,它会让浏览器跳到文档开始处。

location = “#top”;

 

浏览历史

对话框

Window对象提供了3个方法向用户显示简单的对话框:

    alert()向用户显示一条消息并等待用户关闭对话框。

    confirm()显示一条消息,要求用户单击“确定”或“取消”按钮,并返回一个值。



     prompt()显示一条消息,等待用户输入字符串,并返回那个字符串。

     良好的设计需要有节制的使用3个弹出框,这些对话框中显示的文本是纯文本,而不是HTML格式的文本。

      方法confirm()和prompt()都会产生阻塞,在用户关掉他们所显示的对话框之前,它们不会返回。在弹出一个对话框前,代码就会停止运行,如果当前正在载入文档,也会停止载入,直到用户用要求的输入进行相应为止。

更复杂的方法:

showModalDialog()显示一个包含HTML格式的“模态对话框”(显示出来就不可以点位于下面的对话框),可以给它传入参数,以及从对话框里返回值。

   第一个参数用以指定提供对话框内容的HTML,第二个参数是一个任意值(数组、对象均可),这个值在对话框的脚本中可以通过window.dialogArguments属性的值访问,第三个参数是一个非标准的列表,一般配置对话框的尺寸或其他属性。

当窗口关闭后,window.returnValue属性的值就是此方法返回的值,对话框的HTML内容必须包含用来设置returnValue的“确定”按钮。

   showModalDialog()或是showModelessDialog() 来调用网页对话框,至于showModalDialog()

与showModelessDialog()的区别,在于showModalDialog()打开的窗口(简称模式窗口),置在父

窗口上,必须关闭才能访问父窗口(建议尽量少用,以免招人反感);showModelessDialog()(简称无模式窗口),

打开后不必关闭也可访问父窗口打开的窗口。
    dialogHeight: iHeight 设置对话框窗口的高度。
    dialogWidth: iWidth 设置对话框窗口的宽度。
    dialogLeft: iXPos 设置对话框窗口相对于桌面左上角的left位置。
    dialogTop: iYPos 设置对话框窗口相对于桌面左上角的top位置。
    center: {yes   no   1   0 } 指定是否将对话框在桌面上居中,默认值是“yes”。
    help: {yes   no   1   0 } 指定对话框窗口中是否显示上下文敏感的帮助图标。默认值是“yes”。
    resizable: {yes   no   1   0 } 指定是否对话框窗口大小可变。默认值是“no”。
    status: {yes   no   1   0 } 指定对话框窗口是否显示状态栏。对于非模式对话框窗口,默认值是“yes”;对于模式对话框窗口,默认值是 “no”。

 





Insert title here



//对话框的正文


 多窗口和窗体

一个Web浏览器窗口可能在桌面上包含多个标签页。每个标签页都是独立的“浏览上下文”,每一个上下文都有独立的Window对象,而且相互之间互不干扰。每个标签页中运行的脚本通常不知道其他标签页的存在,更不用说和其他标签页的Window对象进行交互操作或者操作其他文档内容了。

但是窗口并不总是和其他窗口完全没有关系。一个窗口或标签页中的脚本可以打开心的窗口或标签页,当一个脚本这样做时,窗口与另一个文档之间就可以互操作。

打开和关闭窗口

使用Window对象的open()方法可以打开一个新的浏览器窗口。
open()可以有四个参数:

 第一个:新窗口显示的文档的URL;

第二个:新窗口的名称;

第三个:可选参数,是一个以逗号分隔的列表,包含大小和各种属性;

第四个:只有在第二个参数命名的是一个存在的窗口时才有用,是一个布尔值,声明了由第一个参数指定的URL是应用替换掉窗口浏览历史的当前条目(true),还是应该在窗口浏览历史中创建一个新的条目(false),后者是默认的设置。

open()方法的返回值是代表新创建的窗口的Window对象:

var w = window.open();
w.alert("whhere aer you ");
w.location = "";


使用close()将关闭一个窗口。

窗体之间的关系

任何窗口或窗体中的javascript代码都可以将自己的窗体或者窗口引用为window或self。窗体可以用parent属性引用包含它的窗口或窗体的window对象(如果一个窗口是顶级窗口或标签,而不是窗体,那么其parent属性引用的就是这个窗口本身):

parent == self (一个窗口是顶级窗口时成立)

 

top属性可以获得窗体的顶级窗体(如果一个窗口是顶级窗口或标签,而不是窗体,那么其top属性引用的就是这个窗口本身)

(top:顶级      parent:上一级)

注:1.parent可以嵌套使用(parent.parent);2.窗体是通过iframe创建的。