2013-02-23 152 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);这将防止创建历史项目。因此,后退/前进按钮从未启用,并且它们必须使用下一个/前一个按钮来导航我们的工具。

我不会试图用我提供的例子之外的按钮弄脏按钮。