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

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

我是 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 语句中指定的选项卡。

有什么办法可以做到这一点?

答案1

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

更新: 损坏块的出现可能只是 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);

答案2

我不确定如何在 Javascript 中做到这一点,但 Firefox 有一个名为的插件每次重新加载。安装它,重新启动 FF,然后右键单击页面并选择 ReloadEvery 和时间。

相关内容