【问题标题】:Why isn't my Greasemonkey script updating?为什么我的 Greasemonkey 脚本没有更新?
【发布时间】:2013-02-12 06:06:28
【问题描述】:

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

【问题讨论】:

    标签: greasemonkey auto-update tampermonkey


    【解决方案1】:

    两个问题:

    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== 
      

      注意前导空格?

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

    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');
    

    【讨论】:

    • 当你说不使用包含时,你没有说要使用什么。您的意思是使用匹配而不是包含?
    • @erm3nda,我说过不要使用@include ** 有很大的不同。是的,用@match很好,也可以用@include  http://YOUR_SERVER.COM/YOUR_PATH/*之类的东西
    • 哦,你说的是@include * 字面意思。你是对的,那是真正的错误方式。
    【解决方案2】:

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

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

    【讨论】:

    • 只有在选中Require secure updates 选项时才需要HTPS。 (是的,在新安装的 Greasemonkey 上默认检查。)另外请注意,已证明 *.meta.js 文件中的元数据块 错误。所以这个答案的那一部分是错误的。
    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多