19

我有一个用于 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== 
4

2 回答 2

23

两个问题:

  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 无法处理其元数据块的前导空格。

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

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

如果没有@updateURL设置,Greasemonkey 只会使用/检查@downloadURL. 这可以为您节省额外的维护工作(以及可能的 SNAFU)。

最后,在一个不相关的注释上,不要使用@include *!
使用@include *

  1. 减慢浏览器的速度
  2. 可能导致不必要的副作用
  3. 导致有良心的用户拒绝安装您的脚本。





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

var gAllMetaRegexp = new RegExp(
    '^// ==UserScript==([\\s\\S]*?)^// ==/UserScript==', 'm');
于 2013-02-27T03:36:36.897 回答
1

如果脚本正常工作,那么您的元块不太可能有问题,除了您需要使用有效的HTTPS源来启用更新。

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

于 2013-06-05T21:00:16.307 回答