使用JavaScript和Greasemonkey重新加载Firefox中的一个选项卡?


8

我是Greasemonkey和javascript的新手,但发现下面的脚本每5分钟重新加载一次页面。

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://ww.bbc.co.uk
    // @grant               none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
window.setTimeout("document.location.reload();", numMinutes*60*1000);

此方法有效,但是每5分钟重新加载所有打开的选项卡,而不仅仅是@include语句中指定的选项卡。

有什么办法吗?



抱歉-这只是一个错字
-Neil Spencer

Answers:


8

该代码的元数据块已损坏,空格对于该块至关重要,并且行首的多余空格可能会破坏它-导致脚本为所有页面触发(默认行为)。

更新: 损坏的块的外观可能只是SuperUser的显示错误。会进行调查。
更新:损坏的块是真实的,OP的代码由制表符和空格组成的缩进缩进,这欺骗了SU的原始帖子编辑器,但没有欺骗最终显示。

另外,该@include指令还指定了不存在的网页。ww.www.。该行应为:

// @include     http://www.bbc.co.uk/

或可能:

// @include     http://www.bbc.co.uk/*

如果您想要的不仅仅是首页。

将它们放在一起并setTimeout以推荐的方式使用(避免使用“ auto eval()”):

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://www.bbc.co.uk/
// @grant       none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
setTimeout (location.reload, numMinutes*60*1000);

1
辉煌-非常感谢。现在,该脚本实际上仅在我想要的页面上运行,而不是在所有页面上运行。
尼尔·斯宾塞

2

我不确定如何用Javascript执行此操作,但是Firefox有一个名为ReloadEvery的插件。安装它,重新启动FF,然后右键单击页面并选择ReloadEvery和一个时间。


1
是的-但是每次我打开Firefox并访问网站时,都需要激活ReloadEvery。我想要的是仅通过转到页面即可自动激活重新加载。上面的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.