从浏览器控制台自动刷新页面

16

你好

我以前从未真正使用过浏览器控制台,所以我不太清楚它能做什么——我想要实现以下目标:

如何在浏览器控制台中强制或启动页面的自动刷新?也就是说,不需要每次按F5键?

另外,控制台是否支持jQuery?或者这取决于你所访问的网页是否使用了jQuery?

谢谢!


1
使用Opera浏览器。您可以在上下文菜单中设置任何页面的自定义刷新间隔,并通过在控制台中键入// jquery()来加载当前标签页中的jQuery(是的,如果未加载,您无法使用它)。 - Bergi
8个回答

24

使用浏览器标签“A”打开并控制另一个浏览器标签“B”。这使您能够在标签“B”中持续自动重新加载网页,否则您将无法控制。当标签“B”重新加载时,您从标签“A”发出的重新加载命令不会被清除。

我使用此方法来刷新网站,以避免超时并注销我的帐户。此方法不需要jQuery,并且不要求您有任何对目标Web页面HTML代码的控制。

打开浏览器新标签“ A”,按F12,选择控制台。键入类似于以下内容的内容:

win1 = window.open("https://www.example.com");

timer1 = setInterval(function(){win1.location.href="https://www.example.com"},10*60*1000);

"win1" 是给新的浏览器选项卡 "B" 分配一个Javascript变量名称,以便您可以在Javascript中控制它。 "timer1" 也是为了分配一个变量名称,以方便以后进行控制。 setInterVal函数运行一个匿名函数来调用 "win1" 或选项卡 "B" 来刷新它的 "location.href",每10分钟一次。

您可能需要保持这两个选项卡处于打开状态。将它们固定起来以便轻松访问。关闭这两个选项卡以停止自动重新加载。对选项卡 "A" 进行硬刷新也可能会停止自动重新加载。您还可以使用变量 "timer1" 来取消自动重新加载。


21
您可以通过在浏览器控制台中运行以下命令来刷新页面:
```javascript location.reload(); ```
location.reload()

如果你所在的网站已经加载了jQuery,你就可以运行jQuery命令。

如果该网站未加载jQuery,则可以使用以下书签将jQuery注入页面中:

javascript:(function(e,a,g,h,f,c,b,d){if(!(f=e.jQuery)||g>f.fn.jquery||h(f)){c=a.createElement("script");c.type="text/javascript";c.src="http://ajax.googleapis.com/ajax/libs/jquery/"+g+"/jquery.min.js";c.onload=c.onreadystatechange=function(){if(!b&&(!(d=this.readyState)||d=="loaded"||d=="complete")){h((f=e.jQuery).noConflict(1),b=1);f(c).remove()}};a.documentElement.childNodes[0].appendChild(c)}})(window,document,"1.3.2",function($,L){(function(){var d=document.createElement("div"),c=document.getElementsByTagName("body")[0],e=false,g="";d.style.position="fixed";d.style.height="32px";d.style.width="220px";d.style.marginLeft="-110px";d.style.top="0";d.style.left="50%";d.style.padding="5px 10px";d.style.zIndex=1001;d.style.fontSize="12px";d.style.color="#222";d.style.backgroundColor="#f99";if(typeof jQuery!="undefined"){g="This page already using jQuery v"+jQuery.fn.jquery;return f()}else{if(typeof $=="function"){e=true}}function a(i,k){var h=document.createElement("script");h.src=i;var j=document.getElementsByTagName("head")[0],b=false;h.onload=h.onreadystatechange=function(){if(!b&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){b=true;k();h.onload=h.onreadystatechange=null;j.removeChild(h)}};j.appendChild(h)}a("http://code.jquery.com/jquery.min.js",function(){if(typeof jQuery=="undefined"){g="Sorry, but jQuery wasn't able to load"}else{g="This page is now jQuerified with v"+jQuery.fn.jquery;if(e){g+=" and noConflict(). Use $jq(), not $()."}}return f()});function f(){d.innerHTML=g;c.appendChild(d);window.setTimeout(function(){if(typeof jQuery=="undefined"){c.removeChild(d)}else{jQuery(d).fadeOut("slow",function(){jQuery(this).remove()});if(e){$jq=jQuery.noConflict()}}},2500)}})();});

太棒了,谢谢!但是如果我想要自动重新加载页面,比如每10分钟一次呢? - DextrousDave
每次运行代码并刷新浏览器时,代码都会被清除...但是你可以创建一个循环,使得代码不断执行,而无需每次都输入它...在浏览器中?请注意,我无法访问源文件以添加代码来实现此操作...我想从浏览器中完成...谢谢。 - DextrousDave

5

如果您想使用控制台,请在控制台中键入document.location.reload()。但是,如果您想要自动刷新 - 它需要在您的代码中。

是的,如果您在代码中包含了jQuery库文件,控制台将接受它。

还有一件事:对于自动刷新,您需要像这样的东西

setInterval(function(){ document.location.reload() },10*60*1000);但它不会在控制台中工作,因为在第一次刷新后,此代码将不再在控制台中。请将其放置在您的代码中。


1
有没有办法让它自动运行...循环?而不需要每次都手动执行代码? - DextrousDave

3
您可以使用“像”。
   document.location.reload()

谢谢,但实际上我指的是一个不是我的页面……我正在监视一个需要每隔几分钟检查一次的网页,我不想每次都按F5。 - DextrousDave

1
如果您的网页包含jQuery,则可以在控制台中使用jQuery。要刷新页面,您可以直接在控制台中输入:
window.location.reload()

0
最简单的方法是使用插件,例如“超级自动刷新”。该插件适用于大多数浏览器。

-1

在 @saeng 的回答中添加,如果您需要在一定时间后停止间隔。

打开控制台并编写下面提到的片段。

INTERVAL = 5    // seconds
STOP_AFTER = 15 // seconds

// Open the same link in the new tab
win1 = window.open(location.href);

// At every 5 seconds, reload the page
timer1 = setInterval(() => {
    win1.location.reload();
    console.log("Refreshed");
},INTERVAL*1000)

// Stop reloading after 15 seconds
setTimeout(() => clearInterval(timer1), STOP_AFTER*1000)

它将打开一个新的选项卡,以相同的链接重新加载它,在一定时间间隔后停止重新加载。


你的代码回答了错误的问题。他没有问如何在新窗口中打开相同的页面,他问的是如何刷新页面。下面已经给出了正确的答案。 - Charles D Pantoga
@CharlesDPantoga,我相信我的方法是另一种选择,如果其他人正在寻找多个选项的话。我同意这不是对提问者百分之百准确的答案,但我相信它可以给提问者或者任何寻找选项的人一些启示。 - Jay Joshi

-2
添加这个 JavaScript。
setTimeout(function () { location.reload(1); }, 5000);

将以下元标签添加到您的页面中:
<meta http-equiv="refresh" content="5; URL=http://mywebsite/mypage.aspx">

非常感谢 ann


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接