Why isn't my Greasemonkey script updating?

前端 未结 2 1425
盖世英雄少女心
盖世英雄少女心 2020-12-31 02:25

I\'ve got a Greasemonkey script for Firefox. The script includes this meta-block and some lines of code.

I want to update my script on the server and then automatic

相关标签:
2条回答
  • 2020-12-31 02:34

    If the script is working, then there's not likely a problem with your meta block, EXCEPT, you need to use a valid HTTPS source to enable updating.

    Reference http://wiki.greasespot.net/Metadata_Block#.40downloadURL

    0 讨论(0)
  • 2020-12-31 02:48

    Two problems:

    1. Currently, your 1.meta.js is:

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

      Note the leading spaces?

      Greasemonkey cannot handle leading spaces for its Metadata Block due to a design limitation1.

    2. The current script version seems to be 1.8, but the meta file has version 1.7.

    ~~~~~
    For small scripts, that you host on your own website, don't even bother with the @updateURL setting. That's there mainly to conserve bandwidth, especially on sites like userscripts.org.

    With no @updateURL setting, Greasemonkey will just use/check whatever's set by @downloadURL. This saves you extra maintenance work (and possible SNAFU's like this one).

    Finally, on an unrelated note, don't use @include *!
    Using @include *:

    1. Slows down your browser
    2. Can cause unwanted side effects
    3. Causes conscientious users to refuse to install your script.





    1. Specifically, this bit in the GM source file, parseScript.js:

    var gAllMetaRegexp = new RegExp(
        '^// ==UserScript==([\\s\\S]*?)^// ==/UserScript==', 'm');
    
    0 讨论(0)
提交回复
热议问题