2013-02-26 20 views
15

Firefox用のGreasemonkeyスクリプトがあります。このスクリプトには、このメタブロックといくつかのコード行が含まれています。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== 

答えて

18

2つの問題:

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

    は、先頭のスペースに注意してください?

    グリースモンキーは、Metadata Blockのデザインスペースの先頭スペースを処理することができません。これは、デザイン制限です。

  2. 現在のスクリプトのバージョンは1.8と思われますが、メタファイルのバージョンは1.7です。小さなスクリプトの場合
    ~~~~~

、あなたがあなた自身のウェブサイト上でホストすることも@updateURL設定で気にしないでください。これは主に、特にuserscripts.orgのようなサイトで帯域幅を節約するためです。

@updateURLが設定されていない場合、Greasemonkeyは@downloadURLで設定されたものを使用/チェックします。これにより、余分なメンテナンス作業(およびこのようなSNAFUの可能性)を節約できます。

最後に、無関係なメモでは、@include *を使用しないでください!
@include *を使用する:

  1. は、お使いのブラウザ
  2. 遅くなることは望ましくない副作用
  3. を引き起こす可能性が良心的なユーザーがスクリプトをインストールすることを拒否するようにします。




。具体的には、GMのソースファイルで、このビット、parseScript.js

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

あなたが使用するものを言っていないが含ま使用していないと言うリファレンス 。あなたは代わりにマッチを使うことを意味しましたか? – erm3nda

+0

@ erm3nda、私は '@include *'を使わないと言った。その '*'は大きな違いをもたらします。はい、 '@ match'を使うのは良いことです、あるいは' @include http:// YOUR_SERVER.COM/YOUR_PATH/* 'のようなものを使うことができます。 –

+0

ああ、 '@include *' LITERALLYと言っています。そうです、それは本当に間違った方法です。 – erm3nda

1

スクリプトが動作している場合は、あなたのメタブロックに問題がありそうではありません、あなたができるようにする有効なHTTPSソースを使用する必要がありますEXCEPT更新する。

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

+0

HTPSは、 'Require secure updates'オプションがチェックされている場合にのみ必要です。 (もちろん、新しいGreasemonkeyのインストールではデフォルトでチェックされています)また、メタデータブロック*が* .meta.jsファイルで* faultyであることが証明されました。この答えの一部は間違っています。 –

関連する問題