3

我正在开发一个评估系统,其中候选人尝试考试。因此,呈现问题及其选择的页面是一个带有 的页面iframe,其中问题被呈现。保存的页面iframe包含JavaScript计时器。

因此,当问题在浏览器上呈现以限制刷新时,我编写F5ctrl+F5阻止了代码,因此候选人无法使用键盘快捷键刷新,但在浏览器窗口中,仍然可以使用刷新按钮或后退按钮。有什么办法可以禁用它吗?我知道玩浏览器功能不是一个好习惯,所以有什么办法可以摆脱这种情况。

4

8 回答 8

10

试试这个来禁用后退按钮。

    <script type="text/javascript">
      window.history.forward();
      function noBack() { window.history.forward(); }
    </script>
   </head>
   <body onload="noBack();"
     onpageshow="if (event.persisted) noBack();" onunload="">

或者我们可以从工具栏中删除这些

window.open ("URL",
"mywindow","status=1,toolbar=0");
于 2013-07-31T05:43:15.890 回答
4

请尝试在所有最新浏览器中限制后退按钮。

history.pushState({ page: 1 }, "Title 1", "#no-back");
window.onhashchange = function (event) {
  window.location.hash = "no-back";
};
于 2015-11-30T13:56:02.767 回答
1
history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
    history.pushState(null, null, document.URL);
});
于 2017-02-06T14:23:22.353 回答
1

这是不可能的。如果您不希望人们通过“返回”来查看旧页面,请禁用缓存,但他们所看到的只是他们刚刚看到的东西,所以它没有任何区别。20 年来人们一直在询问如何禁用后退按钮,到目前为止,我从未见过禁用后退按钮的网站。

但是,是的,这里有一个技巧

谢谢

window.location.hash="no-back-button";
window.location.hash="Again-No-back-button";//again because google chrome don't insert first hash into history
window.onhashchange=function(){window.location.hash="no-back-button";}
于 2017-03-01T09:55:52.370 回答
0

你可以试试这个......: -

window.open ("http://viralpatel.net/blogs/",
"mywindow","status=1,toolbar=0"); 

这将打开一个没有工具栏的窗口......没有工具栏没有按钮......:D

于 2013-07-31T05:46:58.233 回答
0

试试这个:

function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); };
于 2013-07-31T05:49:30.320 回答
0
bool IsPageRefresh = false;

//this section of code checks if the page postback is due to genuine submit by user or by pressing "refresh"

if (!IsPostBack)  
{
    ViewState["ViewStateId"] = System.Guid.NewGuid().ToString();
    Session["SessionId"] = ViewState["ViewStateId"].ToString();
}
else
{
    if (ViewState["ViewStateId"].ToString() != Session["SessionId"].ToString())
    {
        IsPageRefresh = true;
    }
    Session["SessionId"] = System.Guid.NewGuid().ToString();
    ViewState["ViewStateId"] = Session["SessionId"].ToString();
}     
于 2014-09-16T07:42:52.150 回答
-1

document.ready我添加了这一行..

window.history.forward(-1)

于 2013-08-26T09:39:30.103 回答