国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

用vbs腳本來關閉 HTML 頁面的代碼

2020-06-26 18:08:22
字體:
來源:轉載
供稿:網友
問: 
你好,腳本專家!在我的一個腳本中,我顯示一個 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 頁面就轉化為 – HTML 應用程序 (HTA)。與 HTML 頁面相比,HTA 采用完全不同的運行進程和安全模型。因此,self.close() 方法將能夠在不生成消息框的情況下關閉 HTA。 

這是一種非常簡單的解決方法。然而,不幸的是,這不是一種“萬無一失”的解決方法;正是因為它們采用不同的安全模型,有的 HTML 頁面不能轉換為 HTA。但是沒關系:我們說過,還有另一種方法可以解決此問題。如果您不愿意或無法將 HTML 頁面轉換為 HTA,那么您要做的所有事情就是添加一個 Window_OnLoad 子例程,使您的網頁如下所示: 

<SCRIPT LANGUAGE="VBScript"> 
    Sub Window_Onload 
      window.opener = "x" 
    End Sub 
</SCRIPT> 

<BODY onkeypress='self.close()'> 
Press any key to close this window.<BR> 
</BODY> 

是的,這確實非常簡單;事實上,該子例程本身僅包含一行代碼: 

window.opener = "x" 

Opener 屬性是對已打開您的窗口的窗口的引用。當您彈出您的網頁時,Opener 屬性為 Null。這是所期望出現的:畢竟,您的網頁不是從另一窗口打開的。但是,在 Internet Explorer 中,不允許腳本關閉不具有 Opener 的頁面。幸運的是,您要做的所有事情就是將 Opener 屬性的值隨便設成某個值(即使這些值是無意義的,像 x),然后您的腳本就可以正常工作了。 

應指出的是,我們的答案是基于您的特殊情況的:您是從桌面打開 HTML 文件的。看起來這種方法也可用于由 Web 服務器提供的 HTML 頁面。但是,我們只提供了一個基本測試,所以我們只能說:它似乎也適用于該情況。但這也不錯:畢竟,雖然僅僅是似乎可行,但對于腳本專家們就是偉大的成就! 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑山县| 韶关市| 淄博市| 平罗县| 增城市| 全州县| 丹巴县| 湘阴县| 西乌珠穆沁旗| 长岭县| 丹棱县| 互助| 乐都县| 上虞市| 乌兰察布市| 裕民县| 蓬溪县| 浦江县| 西宁市| 祁门县| 桃园县| 海南省| 宝坻区| 顺昌县| 武胜县| 山丹县| 昌平区| 峨眉山市| 井陉县| 上栗县| 平遥县| 股票| 翁牛特旗| 中方县| 岳西县| 潼关县| 堆龙德庆县| 张家界市| 长阳| 阿拉善左旗| 庆元县|