JavaScript之学习如何制做有边框和无边框窗口

ZDNet软件频道 时间:2004-05-19 作者:Builder.com |  我要评论()
本文关键词:javatips
这个技巧是所有窗口技术中最让人感到惊叹的一个。但是很可惜的时,它只能在 Communicator 浏览器下运行,并且需要经过签名的脚本。JavaScript 1.2 在去除浏览器工具栏这一功能上比 1.1 做的要好,它可以去除所有的浏览器边框,包括标题栏和三维边界。
本文译自Builder.com,未经许可请勿转载

这个技巧是所有窗口技术中最让人感到惊叹的一个。但是很可惜的时,它只能在 Communicator 浏览器下运行,并且需要经过签名的脚本。JavaScript 1.2 在去除浏览器工具栏这一功能上比 1.1 做的要好,它可以去除所有的浏览器边框,包括标题栏和三维边界。

还有一点会让事情看起来更加复杂,因为在这个例子中的脚本没有经过签名,所以用户启动代码库原则(codebase principle)才能看到去除边框的窗口。

要创建无边框窗口,需要用户额外的授权,并在 window 的 open() 方法的第三个参数中添加一个简单的 titlebar=no:

var bareWin = null;

var whoAmI = navigator.appName;

var whatAmI = parseInt(navigator.appVersion.charAt(0));

function stripTease() {
  if (whoAmI == "Netscape" && whatAmI >= 4) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
  bareWin =
window.open('dechrome.html','unDress','titlebar=no,top=50,left=50,width=200,height=100');
  netscape.security.PrivilegeManager.disablePrivilege("UniversalBrowserWrite");
  }

else {
      alert('Whoa, Web Builder! Download a version of Netscape Communicator 4.x to view the chromeless window! ');
    }
}

由于标题栏以及三维边框都不见了,所以有些原本该有的功能也随之消失,例如拖曳标题,拖曳边框来改变窗口大小,最小化,最大化以及关闭窗口等按钮都会无法使用。

撇开浏览器专属的安全性问题不谈,上面这段程序代码能够让你创建一个真正完全自主的窗口。当我参加 1997 年的窗口帮助作者会议(conference for Windows Help writers)时,当时的一个发烧议题是如何使用 HTML 来仿真 Window 弹出帮助窗口的外观与感觉。Netscape 公司的秘密行销手法始终都把答案隐藏在后面。


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


责任编辑:李宁

欢迎评论投稿

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