Расширение Chrome после установки/функция API: существует ли она?

Есть ли функция добавления/добавления функции добавления расширений Chrome, которая позволит мне выполнить действие после установки или обновления плагина?

Я хочу выполнить действие после установки моего расширения и только сразу после его установки. Это действие должно выполняться только один раз (после установки или после обновления).

Update

Некоторые люди предложили установить версию расширения в localStorage, проблема в том, что содержимое script, имеющее доступ к localStorage, не загружается на страницу при первом подключении плагина.

AFAIK после установки плагина и использует содержимое script, введенное в вкладку/страницу, страница должна быть перезагружена.

Я не знаю, как получить доступ к localStorage со справочной страницы; localStorage можно получить только из содержимого script.

Чтобы получить номер версии с фоновой страницы в контенте script, необходимо использовать функцию chrome API для выполнения скриптов:

chrome.tabs.executeScript(null, {code:function_to_execute}, function() { // callback });

Однако, когда вы устанавливаете плагин, и страница, на которой этот плагин должен вводить содержимое script в уже загружен, он не вводит содержимое script, вам нужно перезагрузить страницу.

обновление 2

Глядя на некоторые из советов, приведенных более подробно, с целью сохранения номера версии, можно получить доступ к локальному хранилищу исходной страницы. Однако для того, что мне нужно сделать, это перезагрузка определенной вкладки с определенным URL-адресом (чтобы убедиться, что контент script является самой новой версией) после установки или обновления плагина, в конечном итоге оказалось ненужным беспокоиться о том, LocalStorage.

Для того, чтобы оставаться на теме, совет, заданный для написания номера версии, на localStorage (на странице фона), а затем проверки на номер версии в файле манифеста, достаточно хорош, чтобы позволить кому-то запустить script при первом запуске или обновлении.

HowTo

Сделать файл манифеста доступным для фоновой страницы (обратите внимание: это взято из другого места, я не беру на себя ответственность за это, но я не могу вспомнить источник, если вы знаете, дайте мне знать, и я добавлю она).

// MAKE MANIFEST FILE AVAILABLE
chrome.manifest = (function() {
    var manifestObject = false;
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            manifestObject = JSON.parse(xhr.responseText);
        }
    };
    xhr.open("GET", chrome.extension.getURL('/manifest.json'), false);
    try {
        xhr.send();
    } catch(e) {
        console.log('Couldn\'t load manifest.json');
    }
    return manifestObject;
})();

Теперь вы можете получить доступ к номеру версии следующим образом: chrome.manifest.version

Чтобы записать в localStorage, просто передайте его так: localStorage['my_plugin_version'] = chrome.manifest.version

Ответ 1

Вы можете сделать это, используя справочную страницу. Когда расширение установлено, фоновая страница открывается в фоновом режиме и, таким образом, выполняется. Чтобы он не выполнялся каждый раз, просто сохраните значение в localStorage.