Есть ли в любом случае проверка обновлений в пользовательских скриптах Chrome?

Просто чтобы быть ясно: я не собираюсь делать автоматическое обновление. Я просто хотел бы сообщить пользователю, что есть обновленный скрипт, и дать ему ссылку, по которой он может пойти и получить последнюю версию.

Есть несколько способов сделать это в Firefox, но все они, похоже, используют специфические функции Greasemonkey, которые не поддерживаются в Chrome.

Сегодня я потратил четыре часа на изучение этого вопроса, и теперь я обращаюсь к сообществу SO за помощью.

2 ответа

Решение

Спасибо Yi Jiang, который разместил эту ссылку в комментарии. На всякий случай, если этот скрипт исчезнет, ​​я опубликую его содержимое здесь:

// == UserScript ==
// @name SelfUpdatingScript
// @version 1.0.0
// @namespace Benjol (http://stackru.com/users/11410/benjol)
// @description    Template script для самообновляющегося скрипта
// @credits Слава к http://stackru.com/users/115866/balpha
// @include        https://gist.github.com/*
// ==/UserScript==

функция with_jquery(f) {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.textContent = "(" + f.toString() + ")(jQuery)";
  document.body.appendChild(сценарий);
};

with_jquery (function ($) {
  $ (function () {
    //как это работает?
    // 1. Установленный скрипт загружается первым и устанавливает локальную переменную VERSION с номером текущей установленной версии
    // 2. window["selfUpdaterCallback:" + URL] не определено, поэтому оно пропускается
    // 3. Когда вызывается updateCheck(), он определяет window["selfUpdaterCallback:" + URL], который сохраняет номер установленной версии в VERSION (закрытие)
    // 4. updateCheck() затем загружает внешнюю версию скрипта в заголовок страницы
    // 5. когда загружается внешняя версия скрипта, он определяет свою собственную локальную ВЕРСИЮ с внешним (потенциально новым) номером версии
    // 6. window ["selfUpdaterCallback:" + URL] теперь определено, поэтому оно вызывается, и внешний номер версии передается в
    // 7. если номер внешней версии (ver) больше установленной версии (VERSION), вызывается уведомление
    var VERSION = 1,0;                                                         // чем 1.13; если ты имеешь ввиду 1.02, скажи так!)
    var URL = "https://gist.github.com/raw/874058/selfupdatingscript.user.js"; // ВЕРСИЯ)
          уведомитель (версия, версия, URL);
      }

      // сделать это тегом скрипта. ТАК не позволит мне иметь больший знак infront.
      / * $ ('script />').attr("src ", URL).appendTo (" head "); * /
    }

    // ВСТАВЬТЕ СВОЙ ТАМОЖЕННЫЙ ПИСЬМО ПОСЛЕ ЭТОГО КОММЕНТАРИЯ
    // Настройте этот код следующими способами
    //  - изменить обратный вызов, чтобы показать ваше собственное уведомление
    //  - Вы можете проверять наличие обновлений реже, чем при каждой загрузке страницы
    updateCheck (function (newver, oldver, url) {
      alert ("Новая версия SelfUpdatingScript (+ + newver +", ваша текущая версия "+ oldver +") доступна для загрузки здесь: " + url);
    });
  });
});

Я только что нашел скрипт обновления для greasefire, работающий на Chrome. Не знаю, поможет ли это. http://code.google.com/p/greasefire/source/browse/chrome/updater.js?r=55

Другие вопросы по тегам