Tengo una extensión de Chrome. Necesito analizar desde la fuente HTML de la página actual. Encontré aquí todo tipo de soluciones con páginas de fondo y scripts de contenido, pero ninguna me ayudó. esto es lo que tengo hasta ahora:
manifest.json:
{
"name": "Extension",
"version": "1.0",
"description": "Extension",
"browser_action": {
"default_icon": "bmarkred.ico",
"popup": "Test.html"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["content.js"]
}
],
"background": {
"page": "backgroundPage.html"
},
"permissions": [
"cookies",
"tabs",
"http://*/*",
"https://*/*"
]
}
background.html:
<html>
<head>
<script type="text/javascript">
try {
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {
alert(source);
});
});
}
catch (ex) {
alert(ex);
}
</script>
</head>
</html>
content.js:
chrome.extension.onRequest.addListener(function(request, sender, callback) {
if (request.action == "getSource") {
callback(document.getElementsByTagName('html')[0].innerHTML);
}
});
La alerta siempre alerta indefinida. incluso si cambio en el archivo content.js la función de devolución de llamada a:
callback('hello');
sigue siendo el mismo resultado. ¿Qué estoy haciendo mal? tal vez estoy haciendo esto de la manera incorrecta. lo que realmente necesito es esto. Cuando el usuario abre la ventana emergente de la extensión (y solo entonces), necesito HTML de la página actual para poder analizarla. ¿alguna sugerencia?