我有包含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中的頁面會回到更早的位置,而我也不知道爲什麼:(我想要阻止它)。
不要依賴於'unload'事件燒製的關鍵功能。 – millimoose
http://www.4guysfromrolla.com/webtech/111500-1.shtml –
另外,您應該考慮使用DHTML和'pushState()'API,而不是'