背景页面:
chrome.tabs.create({ url: 'http://google.com' }, tab => {
chrome.tabs.executeScript({ code: '2+2;' }, (r) => {
console.log(`url: ${tab.url}, result: ${r[0]}`);
});
});
我打开背景页面看输出:
url: http://google.com/, result: 4
看起来不错,但现在我按F5或Ctrl + F5:
Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "chrome-devtools://devtools/bundled/inspector.html?&remoteBase=https://chrom…om/serve_file/@e8926f681fbb840b4f389e7e692343d4505722ce/&dockSide=undocked". Extension manifest must request permission to access this host.
at Object.callback (chrome-extension://laaoiaaacchfpefjhklpmnfjbeamjfli/background.js:2:15)
在' manifest.json'我有< all_urls>权限。
答案 0 :(得分:4)
当省略tabId
的第一个参数chrome.tabs.executeScript
时,代码将被注入活动窗口的活动选项卡中。在您的情况下,活动窗口是后台页面的devtools调试器,它不允许注入代码。
明确指定tabId
:chrome.tabs.executeScript(tab.id, { code: .......