快速业务通道

用vbs脚本来关闭 HTML 页面的代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
问:
你好,脚本专家!在我的一个脚本中,我显示一个HTML页面,其中包含我希望用户阅读的信息。当他们阅读完该页面之后,他们应该能按某个键使该网页消失。然而,网页并未消失,而是出现了一个消息框,提示说:“您正查看的网页正尝试关闭该窗口。是否要关闭该窗口?”然后,用户必须单击“是”,才能关掉这个网页。如何解决该问题?

--RR

答:
你好,RR。顺便祝贺您:这是我们在“你好,脚本专家!”专栏中遇到的最长的问题了。不知道有没有奖赏?没有,但有一点可以肯定,有一天您可以把这件事讲给您的孙子听。

我们并没有说它会给您的孙子留下印象。但是,如果您是像脚本专家这样的人(但愿您不是),那么您决不会放过任何成绩,哪怕微不足道。毕竟,如果没有这些不给任何人留下印象的微不足道的成绩,我们就写不出年终总结啦!

无论如何,假定您有一个如下所示的HTML文件:

<BODYonkeypress=''self.close()''>
Pressanykeytoclosethiswindow.<BR>
</BODY>

当然,您的页面可能更加富有奇思妙想,不过思路是一样的:您已经获得某种网页,其中在<BODY>标记后附有onkeypress事件。如果此页面是活动窗口且有人按了键盘上的任意键,就会运行下面的小脚本:

self.close()

这个小脚本将关闭该页面。然而,正如您所注意到的,用户将看到一个消息框出现,询问他们是否确实要关闭该页面。这是InternetExplorer中内置的一种安全措施:它主要为了防止他人编写脚本来关闭您的网页。但是,在此情况下,就会阻止任何人(包括您自己)使用脚本关闭页面。(当然,您可以单击“关闭”按钮来关闭页面。但很明显,这不是您所要做的。)

那么,如何解决此问题?实际上,我们知道两种解决此问题的方法。第一种方法是,您可以简单地将文件扩展名从.htm更改为.hta。如此一来,原本平淡无奇的HTML页面就转化为–HTML应用程序(HTA)。与HTML页面相比,HTA采用完全不同的运行进程和安全模型。因此,self.close()方法将能够在不生成消息框的情况下关闭HTA。

这是一种非常简单的解决方法。然而,不幸的是,这不是一种“万无一失”的解决方法;正是因为它们采用不同的安全模型,有的HTML页面不能转换为HTA。但是没关系:我们说过,还有另一种方法可以解决此问题。如果您不愿意或无法将HTML页面转换为HTA,那么您要做的所有事情就是添加一个Window_OnLoad子例程,使您的网页如下所示:

<SCRIPTLANGUAGE="VBScript">
SubWindow_Onload
window.opener="x"
EndSub
</SCRIPT>

<BODYonkeypress=''self.close()''>
Pressanykeytoclosethiswindow.<BR>
</BODY>

是的,这确实非常简单;事实上,该子例程本身仅包含一行代码:

window.opener="x"

Opener属性是对已打开您的窗口的窗口的引用。当您弹出您的网页时,Opener属性为Null。这是所期望出现的:毕竟,您的网页不是从另一窗口打开的。但是,在InternetExplorer中,不允许脚本关闭不具有Opener的页面。幸运的是,您要做的所有事情就是将Opener属性的值随便设成某个值(即使这些值是无意义的,像x),然后您的脚本就可以正常工作了。

应指出的是,我们的答案是基于您的特殊情况的:您是从桌面打开HTML文件的。看起来这种方法也可用于由Web服务器提供的HTML页面。但是,我们只提供了一个基本测试,所以我们只能说:它似乎也适用于该情况。但这也不错:毕竟,虽然仅仅是似乎可行,但对于脚本专家们就是伟大的成就!

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号