У меня есть расширение chrome, я запускаю скрипт содержимого на activeTab, и он отлично работает на других вкладках, но когда я запускаю скрипт на новой вкладке, браузер выдает ошибку «Unchecked runtime.lastError: Не удается получить доступ к содержимому URL "chrome -search: //local-ntp/local-ntp.html". Манифест расширения должен запрашивать разрешение на доступ к этому хосту. " Я думал, что смогу добавить этот URL в файл манифеста, но он не работает. Я видел некоторые решения для других проблем в стеке потока, но пока ни одно из них не сработало.
Вот как я выполняю скрипт:
var link = 'http://localhost/example/abc.html';
chrome.tabs.query({'active': true, 'currentWindow': true}, function (tabs) {
chrome.tabs.executeScript(tabs[0].id, {
file: "lib/prefetch.js"
}, function() {
chrome.tabs.sendMessage(tabs[0].id, {link: link});
resolve(0);//resolve the promise
});
});
Манифест. json выглядит следующим образом :
{
"name": "Example Extension",
"version": "1.0",
"manifest_version": 2,
"description": "Example extension",
"browser_action": {
"default_icon": "img/grey-16.png",
"default_popup": "index.html"
},
"permissions": [
"tabs",
"notifications",
"background",
"activeTab",
"webRequest",
"webRequestBlocking",
"contentSettings",
"browsingData",
"http://*/*",
"https://*/*"
],
"content_scripts" : [
{
"js": [ "index.js", "ext/jquery-2.1.4.min.js"],
"matches": ["*://*/*"]
},
{
"js": [ "content.js", "onexecute.js"],
"run_at": "document_start",
"matches": ["*://*/*"]
}
],
"background": {
"scripts" : ["ext/jquery-2.1.4.min.js","ext/async.min.js","ext/himalaya.js","background.js"],
"persistent": true,
"matches": ["*://*/*"]
},
"content_security_policy": "script-src 'self' 'unsafe-eval' https://rawgit.com/caolan/async/master/dist/async.min.js https://ajax.googleapis.com; object-src 'self'"
}