Я пытаюсь получить результат из файла типа chrome.tabs.executeScript
и отправить его в файл PHP.
Вот мой подход:
**Popup.js Source Code**
// Here I have initiated the tab listener to get the source of the page.
chrome.runtime.onMessage.addListener(function(request, sender) {
if (request.action == "getSource") {
message.innerText = request.source;
}
});
// Я здесьВыполнение файла getPagesSource.js и сохранение ответа массива в htmlout.
function onWindowLoad() {
var message = document.querySelector('#message');
chrome.tabs.executeScript(null, {
file: "getPagesSource.js"
}, htmlout);
jQuery.ajax({
url: "http://gggg.com/core/backend/connect.php",
data:{ htmlout: htmlout },
type: "POST",
success: function(data) {
console.log(data);
htmlout = [];
},
error: function (){}
});
}
// Executing Script
window.onload = onWindowLoad;
Результат: Программа не запущена.Нет ответаПросто сообщение по умолчанию в #message «Вставка скрипта .....»
**getPagesSource.js Source Code**
function DOMtoString(document_root) {
var html = '',
node = document_root.firstChild;
while (node) {
switch (node.nodeType) {
case Node.ELEMENT_NODE:
html += node.outerHTML;
break;
case Node.TEXT_NODE:
html += node.nodeValue;
break;
case Node.CDATA_SECTION_NODE:
html += '<![CDATA[' + node.nodeValue + ']]>';
break;
case Node.COMMENT_NODE:
html += '<!--' + node.nodeValue + '-->';
break;
case Node.DOCUMENT_TYPE_NODE:
// (X)HTML documents are identified by public identifiers
html += "<!DOCTYPE " + node.name + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') + (!node.publicId && node.systemId ? ' SYSTEM' : '') + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n';
break;
}
node = node.nextSibling;
}
var fg = html;
return fg;
}
chrome.runtime.sendMessage({
action: "getSource",
source: DOMtoString(document)
});
Popup.html Исходный код
<!DOCTYPE html>
<html style=''>
<head>
<script src='popup.js'></script>
</head>
<body style="width:400px;">
<div id='message'>Injecting Script....</div>
</body>
</html>