2012-10-03 43 views
0

我有包含iframe的web應用程序。在主要部分客戶端通過ajax與服務器通信,另外我添加了beforeunload = function(){return「something」;},所以當用戶點擊瀏覽器後退按鈕時將出現警報,當用戶點擊離開頁面時,他將失去會話和登錄頁面會顯示。在iframe部分,我使用servlet,因此當用戶點擊瀏覽器後退按鈕時,警報不會出現,因爲只有iframe頁面纔會卸載。現在我想實現。當用戶在iframe中操作時,當他點擊瀏覽器後退按鈕時,應該會出現提醒,當用戶點擊離開頁面時,我想註銷整個應用程序。當他點擊時,不要將頁面留在iframe中不應該重新加載。如何禁用瀏覽器後退按鈕

我試圖在卸載和卸載之前使用兩個事件解決此問題。 這裏面的iframe:

var confirm = false; 
var clicked = true; 
$(window).on('beforeunload', function(evt){ 
    if(confirm){ 
     return "Text"; 
    } else { 
     clicked = false; 
    } 
}); 
$(window).on('unload',function(evt){ 
    if(clicked){ 
     $(this).off('beforeunload'); 
     window.parent.location = window.parent.location + "/error"; 
    } 
}); 

現在,當用戶在iframe中操縱點擊後退按鈕的瀏覽器,會出現警報。當點擊離開頁面運行良好時,退出。但是,當點擊沒有離開時,iframe中的頁面會回到更早的位置,而我也不知道爲什麼:(我想要阻止它)。

+0

不要依賴於'unload'事件燒製的關鍵功能。 – millimoose

+1

http://www.4guysfromrolla.com/webtech/111500-1.shtml –

+0

另外,您應該考慮使用DHTML和'pushState()'API,而不是'