2013-02-23 157 views
1

我有一個應用程序,我已禁用IE8的後退按鈕通過使用以下代碼。禁用IE後退按鈕

window.history.forward(); 
function noBack() { 

    window.history.forward(); 
} 

我知道這段代碼需要返回頁面,然後再向前移動頁面。我已經調用了一個函數onload,使得文本框只能讀取。我已經使用下面的代碼使其只能讀取。

$("#IDofTheTextBox").attr('readonly',true); 

,但如果我選擇文本框,並嘗試按「退格」按鈕,編輯,IE後退按鈕是越來越調用,這是隻讀的文本框不再被只讀。任何人都可以幫我解決這個問題嗎?

+7

**爲什麼**你會打破後退按鈕?這是可怕的用戶體驗.. – MarcoK 2013-02-23 06:55:46

+1

您是否嘗試在HTML本身內設置'只讀'屬性 – 2013-02-23 06:56:05

+0

Duplicate:http://stackoverflow.com/questions/780718/how-to-disable-back-button-in-ie-and- firefox – Arpit 2013-02-23 06:57:43

回答

4

答案很簡單「NO」

如果你想防止用戶失去他們的工作,你可以試試:

window.onbeforeunload = function() { return "Are you sure want to leave this page?."; }; 
+4

@ Downvoter-謹慎評論之前downvoting。 – coder 2013-02-23 07:10:08

2
function changeHashOnLoad() { 
    window.location.href += "#"; 
    setTimeout("changeHashAgain()", "50"); 
} 

function changeHashAgain() { 
    window.location.href += "1"; 
} 

var storedHash = window.location.hash; 
window.setInterval(function() { 
    if (window.location.hash != storedHash) { 
     window.location.hash = storedHash; 
    } 
}, 50); 

您添加上面的javascript功能在js文件和onload調用功能changeHashOnLoad().

其在IE8中工作正常。我只是測試它。

+0

它禁止我的退格按鈕。但如果我保持退格按鈕幾秒鐘,然後再次其相同的情況......! – 2013-02-23 08:04:50

0

我不知道您的網頁試圖做...但是這是我們做什麼:

我們有一個評估,我們不希望啓用瀏覽器按鈕...因爲我們運行AJAX /邏輯當用戶點擊下一個/返回等等(根據他們的輸入來確定下一個要顯示的內容)。後退和前進按鈕可能會混淆該過程。

因此......我們有用戶在新窗口中打開我們的評估,所以後退按鈕已被禁用...(在新窗口中沒有以前的歷史記錄)。然後,我們的下一個/後退按鈕使用window.location.replace(url);這將防止創建歷史項目。因此,後退/前進按鈕從未啓用,並且它們必須使用下一個/前一個按鈕來導航我們的工具。

我不會試圖用我提供的例子之外的按鈕弄髒按鈕。