Я написал это расширение Chrome:
content.js
// Listen for messages
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
// If the received message has the expected format...
if (msg.text === 'report_back') {
sendResponse(document);
}
});
background.js
// A function to use as callback
function doStuffWithDom(domContent) {
console.log('I received the following DOM content:\n' + domContent);
}
// When the browser-action button is clicked...
chrome.browserAction.onClicked.addListener(function (tab) {
// ...check the URL of the active tab against our pattern and...
// ...if it matches, send a message specifying a callback too
if(tab.url && tab.url.indexOf('git') > -1){
chrome.tabs.sendMessage(tab.id, {text: 'report_back'}, doStuffWithDom);
}
});
manifest.json
{
"manifest_version": 2,
"name": "FetchCSV",
"version": "1.0.0",
"description": "Fetches the CSV from issues from github",
"browser_action": {
"default_logo": "logo.png"
},
"content_scripts": [{
"matches": ["*://*/*"],
"js": ["content.js"]
}],
"permissions": [
"tabs",
"activeTab",
"*://*/*"
],
"background": {
"scripts": [
"background.js"
],
"persistent": false
}
}
Я пытаюсь получить полную доступ к текущей странице в Chrome.Но он возвращает doStuffWithDom
всегда возвращает неопределенное значение и возвращает исключение «Не проверено runtime.lastError: Не удалось установить соединение. Получающий конец не существует.».Я хотел бы вернуть полную структуру DOM и сохранить ее на диске.
Я что-то упустил?