首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将webstore URL传递给扩展,尽管"webstore无法通过扩展编写脚本“

如何将webstore URL传递给扩展,尽管"webstore无法通过扩展编写脚本“
EN

Stack Overflow用户
提问于 2019-04-13 21:33:43
回答 1查看 42关注 0票数 0

经过广泛的搜索,我发现了Rob的答案:https://stackoverflow.com/a/11614440/7907844,"webstore不能通过扩展来编写脚本“。

我只想提取URL并将其传递给扩展。有没有办法做到这一点?我可以从后台脚本中查询所有打开的选项卡,并将活动选项卡URL保存在扩展可访问的变量中吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-14 00:08:07

我最终实现了后台脚本,将当前活动的tab URL保存在一个变量中,我可以从popup.js中访问该变量,因为webstore不允许我们在那里运行内容脚本。chrome.extension.getBackgroundPage() inside popup.js只有在我使用var currentUrl时才能工作。

代码语言:javascript
复制
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);
        })
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55666052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档