2011-07-22 104 views
1

window.onbeforeunload=function();不適用於Chrome。它適用於IE和Mozila,但不適用於Chrome。在Chrome中是否有其他方式使用window.onbeforeunload=function();window.onbeforeunload不適用於Chrome

請找到下面的代碼。 Chrome中沒有調用Failure.jsp。提前致謝。

window.onbeforeunload = function() { 
    window.location='Failure.jsp'; 
    confirm("onbeforeunload>>>>>>>>>"+window.location); 
} 

Failure.jsp:

<body> 
<h3> <b> Your session Expired</b></h3> 
<% session.invalidate(); 
System.out.println("invalidate>>>>>>>>>>>>>>>>>"); 
%> 
Click here to <a href="http://localhost:8080/myApplication">Relogin</a> 
</body> 
+0

請不要這樣做! 'onbeforeunload'在Chrome(以及Firefox和IE)中工作正常,但它只能用於告訴用戶他們將要離開頁面,並且可能會執行一些清理。由於安全原因,Chrome不執行'window.location'。某些瀏覽器可能會加載該頁面(並且您可能會看到它,因爲'confirm'會停止執行),但在完成「onbeforeunload」之後,瀏覽器將繼續執行它正在做的事情(即加載用戶想要訪問的頁面)。 –

回答

2

onbeforeunload事件(應該是)用於清理而已,debatably ...提示保存工作。它是絕對是不是你強制瀏覽器重定向到你選擇的另一頁,鉻積極阻止這種行爲,有充分的理由。

撇開:the event isn't specified,也就是說可以的行爲,但它喜歡......而Chrome則選擇在這裏保護用戶。

+0

他在確認框中有一個window.location作爲文本,他並不試圖重定向任何東西。 – Clint

+0

@Clint - 他是,看看代碼:'window.location ='Failure.jsp';',這是*嘗試*當用戶離開頁面時將用戶重定向到'Failure.jsp' ...這是一個不-沒有。 –

+0

你說得對。對不起:-) – Clint

相關問題