用 JavaScript 很容易用一个窗口来控制另一个窗口中的内容。唯一的要求
是这两个窗口必须有父子关系。也就是说,一个窗口必须是由另外一个窗口
来打开的。 通过这一课,你将会
- 打开一个窗口
- 连接主窗口和子窗口
- 用主窗口来控制子窗口
- 用子窗口来控制主窗口
打开一个新窗口
你可以 JavaScript 的函数 window.open( ) 来打开一个窗口, 比如
window.open("adv04_win2.htm", "newWin1");
其中第一个参数是子窗口里的网址。第二个参数是子窗口的名字。另外你还
可以用第三个参数来定义子窗口的性质。 比如
window.open("adv04_win2.htm", "newWin1",
"toolbar=no,width=700,height=500");
上面一句是打开一个宽 700 高 500 没有工具条的子窗口。
连接主窗口和子窗口
虽然你已经让主窗口打开了一个子窗口,可是它们之间谁也不认识谁。当然
也无法互相控制了。 幸运的是我们可以用 JavaScript 的变量来记住对方或
是说用变量来明确它们之间的父子关系。
现在假定我们主窗口的文件名字叫 adv04_win1.htm, 子窗口的文件名字叫
adv04_win2.htm。 在主窗口里,在打开子窗口的时候,我们用于个变量,比
如 childWin 来记住子窗口
childWin = window.open("adv04_win2.htm", "childWin");
这样, childWin 就代表子窗口了。紧接着这一行,我们用子窗口 childWin
的一个变量, 比如 parentWin 来记住主窗口
childWin.parentWin = this;
这里的 this 是一个很有意思的特殊变量 ,它代表当前的窗口或框架。现在
主窗口和子窗口都已经知道了对方。下面我们就告诉你如何来控制对方。
用子窗口来控制主窗口
在子窗口里,我们可以用变量 parentWin 来控制主窗口。这里我们简单的介
绍一下如何变换主窗口里面的网页。当然你可以控制主窗口里面的其他物体
就象你在主窗口里控制它们一样 ,区别是要加上 parentWin. 在物体和元素
的前面。
如果你想要更换主窗口里面的网页,用下面的语句就可达到
parentWin.location = "new.htm";
更具体一些, 在子窗口里写一个如下的连接
<A href="#" onClick="javascript:parentWin.location='new.htm'">新页</A>
用主窗口来控制子窗口
同样道理 ,你也可以用主窗口里面的子窗口变量来控制子窗口。 比如你想
要更换子窗口里面的网页,用下面的语句就可达到
childWin.location = "new.htm";
更具体一些, 在主窗口里写一个如下的连接
<A href="#" onClick="javascript:childWin.location='new.htm'">新页</A>
实例
这个实例可也让你用子窗口的连接来变化主窗口里面的内容,也就是来更换
主窗口里的网页。