我的功能很简单;
setTimeout(function(){ alert('hello');
//Business stuffs..
location.reload();
eval(localStorage.getItem('mysc'))},5000)
在浏览器(chrome或firefox)中打开后我输入;
localStorage.setItem("mysc","setTimeout(function(){
//Business stuffs...
location.reload();
eval(localStorage.getItem('mysc'))
},5000)");
之后我输入;
eval(localStorage.getItem('mysc'))
我希望此功能永远在同一浏览器窗口中执行..或者直到关闭浏览器.. 但是你猜,它只能工作一次。 我怎样才能做到这一点?
答案 0 :(得分:2)
您应该在页面加载时创建计时器 ,然后在回调中重新加载页面。页面重新加载时,将重新创建计时器。这将“递归地”每5秒重新加载一次页面。
<html>
<head>
<script type="text/javascript">
console.log('page loaded, waiting...');
setTimeout(function () {
console.log('reloading');
location.reload();
}, 5000);
</script>
</head>
</html>
据我所知,如果您不控制要重新加载的页面(即使用Dev Tools或控制台API),则无法实现此目的。在下一页加载时附加脚本以执行是不可能的,并且在当前页面卸载时清除所有活动的定时器。浏览器扩展可能是要走的路;例如,Content Scripts可用于在Chrome中实现此功能。