检测用户是否离开网页的最佳方法是什么?
在onunloadJavaScript事件,每次不工作(HTTP请求,而不是终止该浏览器所需要的时间需要更长的时间).
当前的浏览器可能会阻止创建一个.
我正在做php的在线测验应用程序.我想在回到考试时限制用户.我尝试过以下脚本,但它会停止我的计时器.我该怎么办请建议我.我已经包含了源代码.计时器存储在cdtimer.js中
<script type="text/javascript">
window.history.forward();
function noBack()
{
window.history.forward();
}
</script>
<body onLoad="noBack();" onpageshow="if (event.persisted) noBack();" onUnload="">
Run Code Online (Sandbox Code Playgroud)
我有考试计时器,它从mysql数据库中获取考试时间,并相应地启动计时器,当我把代码禁用后退按钮时它停止.会是什么问题.
我不知道我应该使用哪一个:beforeunload或者onbeforeunload它们似乎都做了非常相似的事情,但具有不同的浏览器兼容性.
一些背景:
我有一张表格.在页面加载时,我将表单序列化并将其保存在变量中.如果用户离开页面,我将表格序列化并比较两者,看看是否有任何变化.但是,如果提交表单,则不应触发该事件.
例1
我按预期工作了.我只是不明白两者之间的区别:
window.onbeforeunload = function(e) {
if(strOnloadForm != strUnloadForm)
return "You have unsaved changes.";
}
Run Code Online (Sandbox Code Playgroud)
使用此行停止在保存表单时触发(绑定到.submit())
window.onbeforeunload = null;
Run Code Online (Sandbox Code Playgroud)
例2
window.addEventListener("beforeunload", function( event ) {
if(strOnloadForm != strUnloadForm)
event.returnValue = "You have unsaved changes.";
});
Run Code Online (Sandbox Code Playgroud)
使用此行停止在保存表单时触发(绑定到.submit())
window.removeEventListener("beforeunload");
Run Code Online (Sandbox Code Playgroud)
文档说的是什么
我已经阅读了onbeforeunload和beforeunload的文档.在Notesonbeforeunload部分下,它指出:
您可以并且应该通过window.addEventListener()和beforeunload事件来处理此事件.那里有更多文档.1
这让我觉得我应该使用后者.但是,removeEventHandler的文档说明了这一点:
addEventListener()并且removeEventListener()不存在于旧版浏览器中.您可以通过在脚本的开头插入以下代码来解决此问题,允许使用addEventListener() …
我必须在 React js 上的浏览器返回事件上显示警报。我曾尝试使用 ,addEventListener但我不确定将代码放置在 React 页面中的何处。我应该放置在任何生命周期钩子中还是在渲染中?我不知道。请帮帮我。