为什么我的Greasemonkey脚本没有更新?

时间:2013-02-26 17:07:12

标签: greasemonkey auto-update tampermonkey

我有一个针对Firefox的Greasemonkey脚本。该脚本包括这个元块和一些代码行。

我想在服务器上更新我的脚本,然后自动更新浏览器的脚本。 requireSecureUpdates选项已关闭 我做错了什么?

我的1.meta.js

// ==UserScript== 
// @name     Ibood autosubmit 
// @include  https://*.ibood.com/* 
// @include  http://*.ibood.com/* 
// @include  * 
// @version  1.1 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
// @grant    GM_addStyle 
// @downloadURL http://www.tipsvoorbesparen.nl/1.user.js
// @updateURL http://www.tipsvoorbesparen.nl/1.meta.js
// ==/UserScript== 

2 个答案:

答案 0 :(得分:21)

两个问题:

  1. 目前,您的1.meta.js是:

        // ==UserScript== 
        // @name     Ibood autosubmit 
        // @include  https://*.ibood.com/* 
        // @include  http://*.ibood.com/* 
        // @include  * 
        // @version  1.7
        // @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
        // @grant    GM_addStyle 
        // @downloadURL http://www.tipsvoorbesparen.nl/1.user.js
        // @updateURL http://www.tipsvoorbesparen.nl/1.meta.js
        // ==/UserScript== 
    

    注意前导空格?

    由于设计限制 1 ,Greasemonkey无法处理其Metadata Block的前导空格。

  2. 当前脚本版本似乎是1.8,但元文件的版本为1.7。

  3. ~~~~~
    对于您在自己的网站上托管的小脚本,请不要理会@updateURL设置。这主要是为了节省带宽,尤其是在像userscripts.org这样的网站上。

    如果没有@updateURL设置,Greasemonkey将只使用/检查@downloadURL设置的内容。这为您节省了额外的维护工作(可能还有像这样的SNAFU)。

    最后,在不相关的说明中,请勿使用@include *
    使用@include *

    1. 减慢浏览器的速度
    2. 会导致不必要的副作用
    3. 让尽责的用户拒绝安装您的脚本。




    4. 1 。具体来说,GM源文件中的这一位parseScript.js

      var gAllMetaRegexp = new RegExp(
          '^// ==UserScript==([\\s\\S]*?)^// ==/UserScript==', 'm');
      

答案 1 :(得分:1)

如果脚本正在运行,那么您的元块可能不会出现问题,除非您需要使用有效的 HTTPS 来源来启用更新。

参考 http://wiki.greasespot.net/Metadata_Block#.40downloadURL