2009-09-21 35 views
3

我是WebBrowser控件的新手。在當前的項目中,我們使用WebBrowser控件來整合現有項目。所有彈出窗口都以新的窗體形式顯示。當在彈出窗口中調用「javascript window:close」時,IE實例始終提示:是否要關閉此窗口。我們使用WndProce來檢查WM_Destroy來通知父表單即將關閉哪些工作正常。我們不喜歡這種控制的唯一情況是信息「你想關閉這個窗口」。有什麼辦法可以壓制這個消息嗎?WebBrowser控件:如何抑制消息:你想關閉這個窗口

任何建議將不勝感激。謝謝。

回答

5

嘗試使用以下任一兩個功能關閉彈出:

function closeWindow() 
{ 
    window.opener = self; 
    window.close(); 
} 

或者:

function closeWindow() 
{ 
    window.open('', '_self'); 
    window.close(); 
} 
+2

第二個選項在IE中適用於我。究竟你在指導瀏覽器做什麼? – deostroll

+1

它會打開一個沒有特定網址的新窗口,其目標是'_self',這意味着目標窗口是運行該窗口的窗口。其效果是文檔窗口使其自己的窗口成爲開啓者窗口,從而獲得它的所有權。然後,它將有權關閉自己,因爲它已經打開了它... – awe

2

這是IE瀏覽器的安全功能。這個想法是爲了防止潛在的惡意腳本關閉用戶不想關閉的窗口。 例外是,如果窗口是由同一個域上的腳本打開的,這表明它是「擁有」窗口的Web應用程序,所以它也可以關閉它。在這種情況下,您不會收到警告。

+0

但是,儘管我的腳本處於相同的域,但我仍然收到警告:/好的嘗試,IE - 但你失敗了再次失敗 –

+0

@SamWatkins:它可能也是要求它在當前會話中是同一個網絡應用程序。 – awe