2013-02-26 20 views
15

Ich habe ein Greasemonkey-Skript für Firefox. Das Skript enthält diesen Meta-Block und einige Codezeilen.Warum wird mein Greasemonkey-Skript nicht aktualisiert?

Ich möchte mein Skript auf dem Server aktualisieren und dann automatisch die Skripte des Browsers aktualisieren. Die Option requireSecureUpdates ist deaktiviert.
Was mache ich falsch?

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

Antwort

18

Zwei Probleme:

  1. Derzeit Ihre 1.meta.js ist:

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

    Beachten Sie die führenden Leerzeichen?

    Greasemonkey kann aufgrund einer Designbeschränkung keine Metadata Block führenden Leerzeichen verarbeiten .

  2. Die aktuelle Skriptversion scheint 1,8 zu sein, aber die Meta-Datei hat Version 1.7.

~~~~~
Für kleine Skripte, dass Sie auf Ihrer eigenen Website hosten, nicht einmal mit der @updateURL Einstellung stören. Das ist vor allem um Bandbreite zu sparen, vor allem auf Seiten wie userscripts.org.

Ohne die Einstellung @updateURL wird Greasemonkey nur die von @downloadURL festgelegten Werte verwenden. Dies erspart Ihnen zusätzliche Wartungsarbeiten (und mögliche SNAFUs wie diese).

Schließlich, in einem nicht verwandten Hinweis, verwenden Sie nicht @include *!
Mit @include *:

  1. Verlangsamt Ihrem Browser
  2. unerwünschte Nebenwirkungen verursachen können
  3. gewissenhaft Benutzer Ursachen zu verweigern Ihr Skript zu installieren.





. Insbesondere dieses Bit in der GM-Quelldatei, parseScript.js:

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

, wenn Sie nicht verwenden, sagen Sie gehören Sie nicht sagen, was zu verwenden. meinst du match statt match verwenden? – erm3nda

+0

@ erm3nda, ich sagte, benutze '' include * 'nicht. Das macht einen großen Unterschied. Ja, es ist gut, '@ match' zu verwenden, oder Sie können etwas wie' @include http: // YOUR_SERVER.COM/YOUR_PATH/* ' –

+0

verwenden. Oh, Sie sagen' @include * 'LITERALLY. Du hast Recht, das ist der falsche Weg. – erm3nda

1

Wenn das Skript funktioniert, dann ist es nicht wahrscheinlich ein Problem mit Ihrem Meta-Block, AUSSER, benötigen Sie eine gültige HTTPS Quelle zu verwenden, zu ermöglichen Aktualisierung.

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

+0

HTPS ist nur erforderlich, wenn die Option "Sichere Updates erforderlich" aktiviert ist. (Ja, es ist standardmäßig bei neuen Greasemonkey-Installationen aktiviert.) Beachten Sie auch, dass der Metadatenblock * in der * .meta.js-Datei * fehlerhaft war. Dieser Teil dieser Antwort ist falsch. –

Verwandte Themen