问:
你好,脚本专家!在我的一个脚本中,我显示一个 HTML 页面,其中包含我希望用户阅读的信息。当他们阅读完该页面之后,他们应该能按某个键使该网页消失。然而,网页并未消失,而是出现了一个消息框,提示说:“您正查看的网页正尝试关闭该窗口。是否要关闭该窗口?”然后,用户必须单击“是”,才能关掉这个网页。如何解决该问题?
-- RR
答:
你好,RR。顺便祝贺您:这是我们在“你好,脚本专家!”专栏中遇到的最长的问题了。不知道有没有奖赏?没有,但有一点可以肯定,有一天您可以把这件事讲给您的孙子听。
我们并没有说它会给您的孙子留下印象。但是,如果您是像脚本专家这样的人(但愿您不是),那么您决不会放过任何成绩,哪怕微不足道。毕竟,如果没有这些不给任何人留下印象的微不足道的成绩,我们就写不出年终总结啦!
无论如何,假定您有一个如下所示的 HTML 文件:
<BODY onkeypress='self.close()'>
Press any key to close this window.<BR>
</BODY>
当然,您的页面可能更加富有奇思妙想,不过思路是一样的:您已经获得某种网页,其中在 <BODY> 标记后附有 onkeypress 事件。如果此页面是活动窗口且有人按了键盘上的任意键,就会运行下面的小脚本:
self.close()
这个小脚本将关闭该页面。然而,正如您所注意到的,用户将看到一个消息框出现,询问他们是否确实要关闭该页面。这是 Internet Explorer 中内置的一种安全措施:它主要为了防止他人编写脚本来关闭您的网页。但是,在此情况下,就会阻止任何人(包括您自己)使用脚本关闭页面。(当然,您可以单击“关闭”按钮来关闭页面。但很明显,这不是您所要做的。)
那么,如何解决此问题?实际上,我们知道两种解决此问题的方法。第一种方法是,您可以简单地将文件扩展名从 .htm 更改为 .hta。如此一来,原本平淡无奇的 HTML 页面就转化为