Javascript 完成后,window.print()仅在Chrome上调用idletimer
我有一个页面,其中设置了idletimer,可在20分钟后将您注销:Javascript 完成后,window.print()仅在Chrome上调用idletimer,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我有一个页面,其中设置了idletimer,可在20分钟后将您注销: (function($){ var clientTimeoutInMinutes = 20; // hard-coded as requirements ask for 20 minutes $(document).bind("idle.idleTimer", function(){
(function($){
var clientTimeoutInMinutes = 20; // hard-coded as requirements ask for 20 minutes
$(document).bind("idle.idleTimer", function(){
form = document.FormOSDA;
form.TargetPage.value = "Logout";
form.action="myactionpage";
form.submit();
});
$.idleTimer(clientTimeoutInMinutes * 60 * 1000); // convert to milli secs
})(jQuery);
但在Chrome中,并且仅在Chrome中,在我执行window.print()之后会调用此函数,即使它们立即取消打印对话框。这发生在WindowsXP和Mac上的最新Chrome上,而在IE8或Firefox上则没有
如何阻止这种情况发生?考虑使用插件:或者甚至是普通的javascript->setTimeout()没关系,在我们正在使用的插件中发现它是一个bug报告,在最新版本中得到了修复。在继续之前,注销超时应该始终在服务器端完成,以保证安全性。如果它是在用户端完成的,那么总是有安全漏洞的空间。它在两个地方都完成了。空闲计时器只是意味着在他们对表单进行大量更改并点击提交之前,他们会看到“您已注销”屏幕。我会使用窗口焦点、模糊和文档鼠标移动,只需使用
window.location.href='logout.html'