2012-10-03 252 views
1

我有MyPage.aspx html頁面(使用ASP.Net生成)。當用戶嘗試離開此頁面時,我需要關閉窗口 - 用戶不應該能夠返回或導航到另一個頁面。卸載時關閉瀏覽器窗口

當我在window.onbeforeunload事件中使用window.close()時,它向用戶請求確認。 「您正在查看的網頁正試圖關閉窗口。你想關閉窗口嗎?「點擊」否「,用戶可以逃脫關閉嘗試。有沒有辦法強制關閉窗口而不給用戶一個選項?

參考:

  1. How can I close a browser window without receiving the "Do you want to close this window" prompt?
  2. Html javascript to open new window and close current window
  3. "Unknown Exception" when cancelling page unload with "location.href"
  4. Display confirmation popup with JavaScript upon clicking on a link
+0

您可以通過解釋爲什麼要阻止用戶來回導航來改善問題。 –

+0

@Jack我正在嘗試爲網站手動實施LogOut功能 – Lijo

+1

可靠的跨瀏覽器解決方案可能很困難。您可以禁用頁面的客戶端緩存,使其無法從歷史記錄中導航回。 – HackedByChinese

回答

3

您可以 「欺騙」 這樣的瀏覽器:

window.onbeforeunload = function() { 
    window.open('', '_self', ''); 
    window.close(); 
} 

似乎在Chrome/Safari瀏覽器的工作/ IE/FF:http://jsbin.com/olijig/1

火狐似乎固執,但也有可能是另一種方式在FF中也是這樣做的。

我應該說,這種技術絕不是標準的,我根本不推薦它,而且除了firefox之外,這個代碼可能會在許多瀏覽器中被破解

UPDATE

它實際上是在Firefox工程太(最新版本),而不是舊版本(我試過3.6.1)。您需要做更多的測試來確認瀏覽器的兼容性。

+0

+1爲巫術:) –

+1

更新了答案和更多的瀏覽器信息 – David

1

不,你不能。用戶必須始終能夠控制瀏覽器中發生的任何事情。

1

我對此並不積極,但我相信如果您有一個窗口打開另一個窗口,父窗口可以關閉該子窗口。有一個登陸頁面可以在一個單獨的窗口中打開你的應用程序,然後通過JavaScript關閉窗口是否可行?有人可能會詳細闡述,因爲我自己並沒有這樣做。