在框架集中,aware0.html 和 aware1.html 与左框架同步,并以白色背景显示。下面是代码:
function preMpt() {
if (self.name == 'contextee') {
document.bgColor = '#ffffff';
parent.preNup('aware1b.html');
}
else {
document.bgColor = '#d2b48c';
self.focus();
window.onblur = function() {
window.close();
}
}
}
…
<body … onLoad="preMpt()">
另一方面,如果两个 HTML 文件任何之一是在一个弹出窗口中打开的,那么它们把焦点定于自己身上并以白色背景显示。而且,当用户在屏幕的其它任何地方点击鼠标时,弹出窗口自动关闭。
为什么这样做?简言之,就是重用。假设你已经有一个百科全书式的电子期刊术语表。在一个框架集中,你可以需要有一个目录,并在选中某个条目的时候改变其外观。然后选中的条目在右框架中打开,然后同步左窗口。在电子期刊中,术语表中的术语的链接打开一个使用与原始术语表中使用的窗口定义相同的弹出窗口——事实上是同一个HTML。两个不同的表现,一个文件。
注意我在 else 语句中的函数 preMpt() 中使用一个事件处理函数作为一个窗口属性:
window.onblur = function() {
window.close();
}
这样就会在一个函数定义中将一个行为(window.close())与一个事件(onblur)绑定起来。