Как получить URL-адрес интернет-магазина для расширения, несмотря на то, что «интернет-магазин не может быть создан сценариями по расширениям» - PullRequest
0 голосов
/ 13 апреля 2019

После тщательного поиска я обнаружил ответ Роба: https://stackoverflow.com/a/11614440/7907844, что "интернет-магазин не может быть создан сценариями по расширениям".

Я только хочу извлечь URL и передать его расширению.Нет ли способа добиться этого?Могу ли я запросить все открытые вкладки из фонового скрипта и сохранить URL-адрес активной вкладки в переменной, доступной для расширения?

1 Ответ

0 голосов
/ 13 апреля 2019

В итоге я реализовал фоновый скрипт, который сохраняет текущий активный URL-адрес вкладки в переменной, к которой я обращаюсь из popup.js, потому что интернет-магазин не позволяет нам запускать там скрипты контента.chrome.extension.getBackgroundPage() внутри popup.js работал, только когда я использовал var currentUrl.

var currentUrl;
var activeTabId;

chrome.tabs.onUpdated.addListener(
    function (tabId, changeInfo, tab) {
        if (changeInfo.status === "complete") {
            chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
                let activeTab = tabs[0];
                currentUrl = activeTab.url;
                activeTabId = activeTab.id;
                if(currentUrl.includes("chrome.google.com/webstore/detail")) {
                    chrome.pageAction.show(activeTab.id);
                } else {
                    chrome.pageAction.hide(activeTab.id);
                }
                console.log("page loaded: ", currentUrl);
            });
        }
    });

chrome.tabs.onActivated.addListener(function (object) {
        activeTabId = object.tabId;
        chrome.tabs.get(activeTabId, function(tab){
            currentUrl = tab.url;
            if(tab.url.includes("chrome.google.com/webstore/detail")) {
                chrome.pageAction.show(object.tabId);
            } else {
                chrome.pageAction.hide(object.tabId);
            }
            console.log("loaded tab selected: ", tab.url);
        })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...