Я пытаюсь отправить HTML из локально внутри расширения chrome в div на активной вкладке. Я отправляю HTML через фоновый скрипт и получаю с помощью скрипта содержимого, введенного на активную вкладку.Передача сообщений с расширенными расширениями Chrome - как пройти HTML
Я получил порт для работы и тестирования с помощью различных простых текстовых сообщений. Div также появляется, но он пуст, так как HTML не отправляет правильно. Кто-нибудь знает, что не так с моим кодом?
фон сценарий:
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "sidebar");
port.onMessage.addListener(function(msg) {
if (msg.command == "read_sidebar")
{
//var sidebarURL = chrome.extension.getURL("sidebar.html");
//console.log(sidebarURL);
var element = document.createElement('div');
element.id = "test";
$("test").load('sidebar.html');
port.postMessage({command: "load_sidebar", html: element.innerHTML})
}
else if (msg.command == "close_load") {
console.log("told to close load");
}
});
});
содержание сценария:
function loadSidebar() {
var port = chrome.runtime.connect({name: "sidebar"});
port.postMessage({command: "read_sidebar"});
port.onMessage.addListener(function(msg) {
if (msg.command == "load_sidebar")
{
console.log(msg.html);
document.getElementById("mySidebar").innerHTML= msg.html;
port.postMessage({command: "close_load"});
}
});
}
Хмммм, я вижу. Я пытаюсь не вводить его как iframe, так как боковая панель должна взаимодействовать с DOM страницы. Это не статический HTML (html имеет angularJS). Я не знаком с XHR. Какую документацию я могу прочитать, чтобы запросить с XHR и обработать ответ? – Sandra
Ну, если вы не изолируете свою боковую панель со страницы, все виды Fun Stuff произойдут. Поэтому вы можете переосмыслить это. XHR означает [XmlHttpRequest] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest). Он может получить необработанный HTML-код, но он не является непосредственно полезным, если он не является статичным. – Xan
Хорошая точка. Я сделал его iframe и успешно отобразил локальный файл html. Однако угловой код разрушается. Я включил угловые и все другие соответствующие сценарии в заголовке, но я просто вижу простой HTML в iframe. Может ли инъецируемый iframe использовать angularJS? – Sandra