JavaScript系列之(5)编写处理窗口感知行为的代码

ZDNet软件频道 时间:2004-05-09 作者:Builder.com |  我要评论()
本文关键词:javatips
如果有一个 HTML 文件能够在一个环境中表现为一种方式而在另一种环境下表现为另外一种方式该有多好啊?事实上,你可以做到这一点。
本文译自Builder.com,未经许可请勿转载

在框架集中,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)绑定起来。


本文作者:Brent Lee Metcalfe 是一位 Web 架构顾问。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134