Почему мой Greasemonkey script не обновляется?

У меня есть Greasemonkey script для Firefox. script включает этот мета-блок и некоторые строки кода.

Я хочу обновить свой script на сервере, а затем автоматически обновить сценарии браузера. Опция 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== 

Ответы

Ответ 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 не может обрабатывать ведущие пространства для Блок метаданных из-за ограничения по дизайну 1.

  • Текущая версия script кажется 1,8, но метафайл имеет версию 1.7.

~~~~~
Для небольших скриптов, которые вы размещаете на своем собственном веб-сайте, даже не утруждайте настройкой @updateURL. Это в основном для экономии полосы пропускания, особенно на сайтах, таких как userscripts.org.

Без параметра @updateURL, Greasemonkey будет просто использовать/проверять все, что установлено, на @downloadURL. Это экономит вам дополнительные работы по техническому обслуживанию (и, возможно, SNAFU, как этот).

Наконец, в несвязанной заметке не используйте @include *!
Используя @include *:

  • Замедляет ваш браузер.
  • Может вызывать нежелательные побочные эффекты.
  • Причиняет добросовестных пользователей отказаться от установки script.





1. В частности, этот бит в исходном файле GM, parseScript.js:

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

Ответ 2

Если работает script, то вряд ли возникнет проблема с вашим метаблоком, EXCEPT, вам нужно использовать допустимый источник HTTPS, чтобы включить обновление.

Ссылка http://wiki.greasespot.net/Metadata_Block#.40downloadURL