无需插件即可在 Chrome 中自动重新加载页面

无需插件即可在 Chrome 中自动重新加载页面

使用 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 代码添加到书签中,并在任何网站上触发它以重新加载。希望对您有所帮助。

相关内容