Есть ли в любом случае проверка обновлений в пользовательских скриптах 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