簡體   English   中英

使用腳本關閉IE“彈出”窗口

[英]Closing an IE 'popup' window with script

是否可以完全禁用“正在查看的網頁正在試圖關閉窗口。您要關閉它嗎?”?

我了解這是多年病毒和惡意腳本活動的產物,但是在合法的應用程序代碼(ASP.NET)中,有什么方法可以將您的應用程序“注冊”為APP,或者標記可以傳遞給IE彈出窗口,以便它關閉時不會顯示?

我正在使用的代碼是在后面的C#代碼中完成的:

ClientScript.RegisterClientScriptBlock(GetType(), "save", Utils.MakeScriptBlock("window.close();")); 

Utils.MakeScriptBlock只是一個可以完成您期望的功能的函數。 它“注入”一個<script ...>標記,其中包含代碼...

可能無法解決這個問題,否則,所有腳本小子都只會使用該技巧,但是我想問一下,因為我不能成為唯一使用(偽)模式的簡單IE“彈出窗口”的人對話框。

一切通過驗證后,此代碼將在我的ButtonSave_Click()例程中發生……

** 編輯 **
僅供參考,下面是單擊添加按鈕時打開彈出窗口的代碼:

這在Page_Init()中...

ButtonAdd.Attributes.Add("onclick", "window.open('Add.aspx', 'ADD_WINDOW', 'scrollbars=no,width=550,height=550,location=no,menubar=no,resizable=yes,directories=no,status=no,toolbar=no'); return false;");

如果您的腳本打開了窗口,則可以關閉窗口而不會彈出窗口。 有幫助嗎?

編輯:您已經使用腳本打開了窗口。 更改您的客戶端腳本以調用self.close()。

ClientScript.RegisterClientScriptBlock(GetType(), "save", Utils.MakeScriptBlock("self.close();"));

我相信不是。 如您所述,以幫助防止惡意軟件。

最終,瀏覽器不知道您不是邪惡的。 有關類似的想法,請參見RFC 3514。

我非常懷疑這是否有可能-聽起來像用戶必須在其IE設置中特別禁用的東西。

如果用戶打開了瀏覽器窗口,則無法關閉它。 但是如果通過腳本打開了窗口,則可以。 聽起來,您只需要用戶以“單擊此處開始”鏈接開頭的初始頁面,即可從該頁面打開網站主要部分的新窗口; 完成所有操作后,關閉彈出窗口,並在其初始瀏覽器窗口中顯示“單擊此處開始”消息。

奇怪,但我發現

<script type="text/javascript">
function closeWindow()
{
    window.close();
    return false;
}
</script>

然后打電話

return closeWindow();

通常繞過這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM