这是在扼杀我。我创建了一个扩展程序,可以在特定网页上进行一些抓取工作。它是一个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>"
]
}
谁能告诉我这里发生了什么?谢谢!
答案 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
});
});
});
});