Chrome扩展程序(完全分离)弹出窗口

时间:2018-01-12 09:15:56

标签: google-chrome google-chrome-extension

这是在扼杀我。我创建了一个扩展程序,可以在特定网页上进行一些抓取工作。它是一个page_action扩展名,如果我使用" default_popup"将一切都设置得很好,除非你失去焦点,否则就会弄乱你的工作。我想在新窗口或新标签中打开它,仍然可以访问我启动它的原始标签。

相反,我收到了这个错误:

Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "chrome-extension://jhbpcpcmfnaklengljfpmeecdfpeiihm/popup.html". Extension manifest must request permission to access this host.
at getData (chrome-extension://jhbpcpcmfnaklengljfpmeecdfpeiihm/popup.js:2:17)
at HTMLButtonElement.<anonymous> (chrome-extension://jhbpcpcmfnaklengljfpmeecdfpeiihm/popup.js:58:9)

我在这里启动新窗口:

chrome.pageAction.onClicked.addListener(function(tab) {
    chrome.windows.create({
        url: chrome.runtime.getURL('popup.html'),
        type: 'popup'
    });
});

这是我的manifest.json:

{
    "version": "1.0",
    "manifest_version": 2,
    "background" : {
        "scripts" : ["background.js"],
        "persistent": false
    },
    "page_action": {
        "default_icon": "icon16.png",
        "default_title": "Get Your Data"
    },
    "icons": { 
        "16": "icon16.png",
        "48": "icon48.png",
        "128": "icon128.png" 
    },
    "permissions": [
        "tabs",
        "activeTab",
        "storage",
        "debugger",
        "declarativeContent",
        "<all_urls>"
    ]
}

谁能告诉我这里发生了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

事实证明,尝试从&#34; chrome-extension运行chrome.tabs.executeScript是一个问题://&#34;页。我的popup.js试图将几个脚本注入活动选项卡,而不是background.js。最终工作:

background.js:

chrome.pageAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript({
        file: 'jQuery-1.7.min.js'
    }, function() {
        chrome.tabs.executeScript({
            file: 'downloader.js'
        }, function() {
            chrome.windows.create({
                url: chrome.runtime.getURL('popup.html'),
                type: 'popup',
                height: 250,
                width: 500
            });  
        });
    });
});