Я вставил iframe из сценария контента. Он работает нормально. Но если я хочу отображать содержимое html родителя в iframe, я должен использовать обмен сообщениями для обмена данными между iframe и скриптом контента, но он не работает. Затем я пытаюсь отправить сообщение из iframe на «страницу событий», затем в «сценарий содержимого». Когда контент-скрипт получит сообщение, он запросит содержимое html и ответит. Это тоже не работает. Как я могу заставить его работать?Расширение Chrome, отправляющее сообщение от iFrame до страницы событий, затем в сценарий содержимого
сценарий Содержание: стр
var iframe = document.createElement('iframe');
iframe.id = "popup";
iframe.src = chrome.runtime.getURL('frame.html');
document.body.appendChild(iframe);
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.from === 'event' && msg.method == 'ping') {
sendResponse({ data: 'pong' });
}
});
событие:
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.from === 'popup' && msg.method === 'ping') {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
from: 'event',
method:'ping'}, function(response) {
sendResponse(response.data);
});
});
}
});
frame.js
// This callback function is never called, so no response is returned.
// But I can see message's sent successfully to event page from logs.
chrome.runtime.sendMessage({from: 'popup', method:'ping'},
function(response) {
$timeout(function(){
$scope.welcomeMsg = response;
}, 0);
});