![无需插件即可在 Chrome 中自动重新加载页面](https://linux22.com/image/1318387/%E6%97%A0%E9%9C%80%E6%8F%92%E4%BB%B6%E5%8D%B3%E5%8F%AF%E5%9C%A8%20Chrome%20%E4%B8%AD%E8%87%AA%E5%8A%A8%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%E9%A1%B5%E9%9D%A2.png)
使用 Firefox 或 Chrome 的 TabMixPlus 插件,我可以右键单击页面并选择“每隔...重新加载”,并且可以选择一个间隔。
除非真的需要,否则我宁愿不安装插件,而且我知道你可以输入特别的Chrome 的地址栏中。
这让我想到,直接在地址中输入这样的内容可能会有效:
javascript:setInterval(window.location.reload(), 2000); //2 secs`
我还没有做到这一点,但仍然不想排除这种可能性。
这可能吗?
答案1
六年后我找到了解决方案!
该答案受到这里其他答案的启发。
Edub 的答案对我来说不起作用,它一遍又一遍地重新加载页面,并且没有遵守setInterval
持续时间参数。我不明白为什么 Edub 的答案没有按预期工作。
这在 Chrome 67 中对我有用:
javascript:document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\"><\/iframe>";reloadTimer = setInterval(function(){ document.getElementById("testFrame").src=document.getElementById("testFrame").src },10000)
格式化版本:
document.getElementsByTagName("body")[0].innerHTML =
"<iframe id=\"testFrame\"
src=\"" + window.location.toString() + "\"
style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\">
<\/iframe>";
reloadTimer = setInterval(
function(){
document.getElementById("testFrame").src=document.getElementById("testFrame").src
},
10000
)
其工作原理是将当前文档主体替换为指向窗口当前位置的 iframe。
然后调用 setInterval,使页面在计时器上重新加载。
这可以很好地用作书签。setInterval 的补充函数也可以通过书签调用:javascript:clearTimer(reloadTimer)
笔记:
一些网站检测到它们正在通过 iframe 访问并尝试阻止访问(例如 Stack 网站!)
浏览器在将前缀粘贴到地址栏时会删除该前缀
javascript:
,因此必须手动输入。但是,javascript:
如果通过书签输入,则不会删除该前缀。
答案2
您可以通过 Chrome 开发者工具使用组合键进行操作ctrl+shift+j. 加载您想要的页面,例如:http://www.w3schools.com/jsref/dom_obj_frame.asp然后打ctrl+shift+j打开开发者工具。右键单击 body 标签并选择编辑为 html,将内部内容(保留标签和结束标签不变)替换为以下内容:
<iframe id="testFrame" src="http://www.w3schools.com/jsref/dom_obj_frame.asp" style="position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;" onload="setInterval(document.getElementById('testFrame').contentWindow.location.reload(), 10000);"></iframe>
要停止以 html 形式编辑,您可以点击esc您正在编辑的标签之外的标签之一。页面应每 10 秒重新加载一次,如果您愿意,可以关闭开发人员工具,它将继续刷新,无需插件 :)
答案3
进一步借鉴 Justin Buser 的解决方案,我得出以下结论:
document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\" onload=\"setInterval(document.getElementById(\'testFrame\').contentWindow.location.reload(), 10000);\"><\/iframe>"
将网站嵌入 iframe 中以便能够重新加载的想法很好(我猜)。我只是写了一些代码来获取 body 元素,并用当前 url 的 iframe 替换 innerhtml。
这样就可以将一些 JavaScript 代码添加到书签中,并在任何网站上触发它以重新加载。希望对您有所帮助。