Задача: разработать интерфейс обмена данными расширения и web-страницы.
Сделал по
developer.chrome.com.
Для начала хочу отослать сообщение на страницу. Когда навесил событие на кнопку в
popup способом
onclick = function..., из которой вызывал:
function postMessage( str ){
window.postMessage({ type: "FROM_PAGE", text: str}, "*");
}
происходило переполнения стэка вызова в
popup странице (???). Сделал как в developer.chrome.com: ничего не происходит, почему-то в консоли основной страницы нет сообщения. Отлавливаю сообщение во встроенном в страницу скрипте так:
window.addEventListener("message", function(event) {
// We only accept messages from ourselves
if (event.source != window)
return;
if (event.data.type && (event.data.type == "FROM_PAGE")) {
console.log("Content script received: " + event.data.text);
port.postMessage(event.data.text);
}
}, false);
В чем проблема не понимаю. Взаимодействие происходит через какой-то буфер (есть в некоторых статьях), но как отлаживать скрипты? Упоминается страница background.html (куда, наверное, встраиваются скрипты), но как для нее консоль запустить - не знаю.