将chrome扩展程序迁移到Web扩展程序

时间:2018-08-17 14:26:05

标签: javascript angular google-chrome firefox firefox-webextensions

我一直在将扩展程序从chrome迁移到Web扩展程序。 chrome扩展程序的链接为here

一切正常,除了我需要在我的角度应用程序中获取制表符信息之外,在TypeError: "browser.tabs is undefined"的提示下出现错误

我可以在后台脚本中访问选项卡信息,并且可以将其发送到内容脚本,但不能在主应用程序中发送。

我的应用程序在iframe中打开,iframe指向角度应用程序。

browser.tabs.getCurrent(function (tabs) {
  //these are tabs
});

我能够通过chrome扩展程序获得它,我找不到将其从后台或内容发送到主应用程序的方法。

我在后台获取它并将其发送到内容

BACKGROUND.js

browser.tabs.query({ currentWindow: true, active: true }, function (tabs) {
            tabs = tabs
            chrome.tabs.sendMessage(tabs[0].id, { action: "tabs", tabs : tabs }, function(response) {
                console.log(response);
            });
        });

获取内容

CONTENT.JS

browser.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    if (request.action == 'tabs') {
        tabs = request.tabs;            
    }
    if (request.action == 'get_tabs') {
        sendResponse(tabs);
    }
});

还尝试通过发送消息和响应,例如在get_tabs

中在主应用中获取它

在主应用中的某处

browser.runtime.sendMessage({ 'action': 'get_tabs' }, function (tabs) {});

如果您遇到此问题,请回答。

0 个答案:

没有答案