限制用户在任何浏览器中刷新和返回

我正在研究评估系统,其中候选人尝试考试。 因此,呈现问题及其选择的页面是一个包含iframe的页面,其中问题是获取渲染。 包含iframe的页面包含JavaScript计时器。

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

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

     

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

 window.open ("URL", "mywindow","status=1,toolbar=0"); 

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

 history.pushState({ page: 1 }, "Title 1", "#no-back"); window.onhashchange = function (event) { window.location.hash = "no-back"; }; 
 history.pushState(null, null, document.URL); window.addEventListener('popstate', function () { history.pushState(null, null, document.URL); }); 

你可以尝试这个…: –

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

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

试试这个:

 function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); }; 
 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(); } 

这是不可能的。 如果您不希望人们通过“返回”看到旧页面,则禁用缓存,但他们所看到的只是他们刚刚看到的东西,所以它没有任何区别。 人们已经问了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";} 

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

window.history.forward(-1)