Insert title here
Window对象的location属性引用Location对象,表示该窗口中显示的文档的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创建的。
窗口中获得窗体的方法:
var iframeElement = document.getElementById("f1");
窗口中获得窗体的Window对象的方法(使用contentWindow):
var childFrame = document.getElementById("f1").contentWindow;
窗口中从表示窗体的Window对象获取该窗体的
var elt = document.getElementById("f1");
var win = elt.contentWindow;
win.frameElement == elt; (true)
window.frameElement == null; (true)
常用的获得窗体Window对象的方法:
每个Window对象都有一个frames属性,它引用自身包含的窗口或窗体的子窗体。frames引用的是类数组对象,并可以通过数字或窗体名进行索引。
frames[0]:窗口的第一个子窗口。
parent.frames[1]:兄弟窗口。
frames["f1"]:名字为"f1"的子窗口。
window.f1:名字为"f1"的子窗口。
注意:frame[]数组里的元素是Window对象,而不是
交互窗口中的javascript:
假设一个web页面里有2个
窗体A的脚本定义了变量i:
var i = 3;
window.i;
在B中可以访问:
parent.A.i = 4;
窗体B的脚本定义了函数f,在A中可以访问:
parent.B.f();
在A中声明变量,方便频繁调用B中的函数:
var f = parent.B.f;