Расширение Chrome: как определить, что скрипт содержимого уже загружен во вкладку?

У меня есть следующий код в моем фоновом скрипте:

chrome.tabs.onUpdated.addListener(function(tabId, changeinfo, tab) {
    if (changeinfo.status !== 'complete')
        return;

    if (!matchesUrlFilters(tab.url))
        return;

    chrome.tabs.executeScript(tabId, { file: "jquery-1.7.1.min.js" }, function() {
        chrome.tabs.executeScript(tabId, { file: "enhance.js" });
    });
});

Однако, похоже, что в некоторых случаях он дважды инжектирует мой скрипт контента (это может произойти, когда enhance.js делает window.history.pushState).

Как я могу выяснить, есть ли на вкладке уже мой скрипт содержимого? Я пробовал chrome.tabs.sendRequest, но он никогда не вызывал обратный вызов, если скрипт содержимого еще не был добавлен.

11
задан Lucky 19 March 2013 в 12:24
поделиться