Я нашел этот ответ о том, как получить исходный текст страницы текущей вкладки: Получение исходного HTML-кода текущей страницы из расширения Chrome
Однако для этого ответа пользователю необходимо нажатьрасширение всплывающего окна.
Я хотел бы знать, как получить доступ к источнику страницы при загрузке страницы (без необходимости вызывать всплывающее окно).
В моем background.js
Я устал от этого:
chrome.tabs.onUpdated.addListener(function (tabId , info) {
console.log(info)
chrome.tabs.executeScript(null, {
file: "getPagesSource.js"
}, function() {
if (chrome.runtime.lastError) {
message.innerText = 'There was an error injecting script : \n' + chrome.runtime.lastError.message;
}
});
});
, но это приводит к следующей ошибке:
Произошла ошибка при вводе сценария: Не удается получить доступ к содержимому страницы.Манифест расширения должен запрашивать разрешение на доступ к соответствующему хосту.
Мой manifest.js
:
{
"name": "Getting Started Example",
"version": "1.0",
"description": "Build an Extension!",
"permissions": ["declarativeContent",
"https://www.example.com/*",
"storage",
"activeTab"],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["content.js"]
}
],
"options_page": "options.html",
"manifest_version": 2,
"page_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/get_started16.png",
"32": "images/get_started32.png",
"48": "images/get_started48.png",
"128": "images/get_started128.png"
}
},
"icons": {
"16": "images/get_started16.png",
"32": "images/get_started32.png",
"48": "images/get_started48.png",
"128": "images/get_started128.png"
}
}
Не думаю, что проблема действительно связана с разрешениями, потому что я могуполучить исходный код страницы из popup.html (который является скриптом page_action).Но я не могу получить его через "background" или "content_scripts".Почему это так и как правильно этого достичь?