2013-02-26 25 views
15

Mam skrypt Greasemonkey dla przeglądarki Firefox. Skrypt zawiera ten meta-blok i kilka linii kodu.Dlaczego mój skrypt Greasemonkey nie jest aktualizowany?

Chcę zaktualizować mój skrypt na serwerze, a następnie automatycznie zaktualizować skrypty przeglądarki. Opcja requireSecureUpdates jest wyłączona.
Co robię źle?

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

Odpowiedz

18

Dwa problemy:

  1. Obecnie swoje 1.meta.js jest:

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

    Uwaga czołowi przestrzenie?

    Greasemonkey nie może obsłużyć wiodących pól dla swojego Metadata Block z powodu ograniczenia projektu .

  2. Obecna wersja skryptu wygląda na 1.8, ale plik meta ma wersję 1.7.

~~~~~
Dla małych skryptów, które gospodarzem na własnej stronie internetowej, nawet nie przeszkadza przy ustawieniu @updateURL. Ma to głównie na celu oszczędzanie przepustowości, zwłaszcza w witrynach takich jak userscripts.org.

Bez ustawienia @updateURL, Greasemonkey po prostu użyje/sprawdzi zestaw ustawiony przez @downloadURL. Oszczędza to dodatkowe prace konserwacyjne (i możliwe SNAFU jak ten).

Wreszcie, na niepowiązanej notatce, nie używaj @include *!
Korzystanie @include *:

  1. Spowalnia przeglądarce
  2. Może powodować niepożądane skutki uboczne
  3. Powoduje sumienny użytkownikom odmówić zainstalowania skryptu.





. W szczególności, ten bit w pliku źródłowym GM, parseScript.js:

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

kiedy mówisz nie używać to nie mówisz co używać. czy chcesz użyć dopasowania zamiast tego? – erm3nda

+0

@ erm3nda, powiedziałem, nie używaj '@include *'. To '*' robi wielką różnicę. Tak, dobrze jest użyć '@ match' lub możesz użyć czegoś takiego jak' @include http: // YOUR_SERVER.COM/YOUR_PATH/* ' –

+0

Och, mówisz" @include * "LITERALNIE. Masz rację, to naprawdę zły sposób. – erm3nda

1

Jeśli skrypt działa, wtedy nie jest prawdopodobne, problem z meta bloku, z wyjątkiem trzeba użyć ważnego HTTPS źródła, aby umożliwić aktualizowanie.

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

+0

HTPS jest wymagany tylko wtedy, gdy zaznaczona jest opcja "Wymagaj bezpiecznych aktualizacji". (Tak, domyślnie jest zaznaczone na nowych instalacjach Greasemonkey.) Należy również zauważyć, że udowodniono, że blok metadanych * był * wadliwy w pliku '* .meta.js'. Ta część tej odpowiedzi jest błędna. –

Powiązane problemy