在没有插件的情况下自动重新加载Chrome中的页面


12

使用适用于Firefox或Chrome的TabMixPlus插件,我可以右键单击页面,然后选择“重新加载所有...”,然后选择一个时间间隔。

除非确实需要,否则我不希望安装插件,并且我知道您可以在Chrome的地址栏中键入特殊内容。

这使我认为直接在地址中键入类似内容可能会起作用:

javascript:setInterval(window.location.reload(), 2000); //2 secs`

我尚未对其进行管理,但仍然不想将其排除在外。

这可能吗?


你为什么反对插件?如果您担心的话,只需编写自己的插件就可以了。
Ramhound 2012年

我不反对插件,抱歉,它看起来像那样。我想进一步了解Chrome的地址栏功能:)
2012年

您为什么不尝试在地址栏中输入呢?
Toby Allen

我有i haven't managed it yet
乔恩(Jon)2012年

问题是,一旦调用location.reload()并重新加载页面,就Chrome而言,这基本上就像加载新页面,并且上下文是全新的(以前输入的内容会丢失)。因此,您需要以某种方式保留您的代码并使页面相同,这就是答案的iframe解决方案的原因。
ShreevatsaR

Answers:


13

6年后,我对此有了解决方案!

答案是受其他答案启发的。

Edub的答案对我不起作用,它一遍又一遍地重新加载了页面,并且没有观察到setInterval的duration参数。我不明白为什么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访问,并尝试阻止访问(例如,堆栈网站!)

  • 浏览器javascript:在粘贴到地址栏中时会删除前缀,因此必须手动输入。但是,javascript:如果通过书签输入,则不会剥离。


11

您可以使用组合键通过Chrome开发者工具来完成此操作ctrl+shift+j。加载所需的页面,例如:http : //www.w3schools.com/jsref/dom_obj_frame.asp,然后单击ctrl+shift+j以打开开发人员工具。右键单击body标签,然后选择edit,因为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秒开始重新加载一次,您可以根据需要关闭开发人员工具,并且该页面会继续刷新,不需要插件:)


谢谢贾斯汀,这行得通,所以我投票了,但这不是我一直在寻找的答案,所以这个问题会一直寄予希望:)另外,F12不是吗?
2012年

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以便能够重新加载的想法很好(我想)。我只是编写了一些代码来获取主体元素,并将Innerhtml替换为当前网址的Iframe。

这样,就可以为一些JavaScript代码添加书签并在任何站点上触发它以重新加载。希望能帮助到你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.