在我们的工作中,我们使用的通信门户网站会在一段时间后退出。我的一些同事问我一个javascript,它禁用了autologout。我所能达到的只是重置显示计时器,但计时器本身仍然在运行。以下是计时器的启动方式:
<body class='asam_body' onLoad='window.setTimeout("DsplTime()",1);' >
如您所见,在onLoad上调用了setTimeout,但是没有对setTimeout-call的引用,所以我不能使用clearTimeout()函数。我也尝试从我的脚本中调用DsplTime(),但仍然没有停止计时器。我找到的所有东西都不适用于我的情况,所以我在两小时后放弃了我的搜索。 有没有办法影响这个服务器端的身体定义,例如由
这是我相当无用的方法,只会重置显示的时间:
setInterval(CalcTime, 130000);
setInterval(resetStart, 130000);
setInterval(DsplTime, 130000);
//resetStart and CalcTime are prefined functions,
// without any impact on the timer itself, unfortunately
提前致谢!
P.S。:这是我第一次在stackoverflow上问一些东西,所以我希望,我适当地问:)
修改:
我尝试了Cancel all Javascript's setTimeouts and setIntervals的蛮力方法,
for (var i = 1; i < 99999; i++) {
window.clearInterval(i);
window.clearTimeout(i);
window.mozCancelAnimationFrame(i); // Firefox
}
但是我仍然在相同的时间后退出了。
这段代码会在1440分钟后退出:
if (absSec >= 1440)
{
document.location.href = "../project/auth/logout.php";
}
这是上面提到的 DsplTime()功能的一部分。有没有办法操纵这个功能,而不是阻止它的呼叫? absSec超出范围,所以我无法改变它的价值(我认为这无论如何都不会有帮助?
编辑2:
所以我可以通过
设法停止计时器// @run-at document-start
//...
var highestTimeoutId = setTimeout(";");
for (var i = 0 ; i < highestTimeoutId ; i++) {
window.clearTimeout(i);
// window.alert(i);
}
不幸的是,该脚本只能偶尔使用(在80%的页面加载中)。另外,这不会给服务器带来很多负担吗?我不想被封锁......
答案 0 :(得分:0)
为什么不覆盖javascript函数DsplTime(),以便它不会让你退出?
转到调试控制台并输入类似DsplTime = new function(){}
的内容当间隔时间和DsplTime()时,该函数将不执行任何操作。