당신은 메시지가 다른 창에 웹보기에서 수신 방송 chrome.runtime.sendMessage
및 chrome.runtime.onMessage
를 사용할 수 있습니다.
그래서 webview가있는 창은 다른 창으로 메시지를 보내고받을 수있는 프록시 역할을합니다. 다음과 같은 코드가 있습니다 :
window.addEventListener('message', (event) => {
event.preventDefault();
const message = event.data;
console.log(`viewer window is broadcasting message from webview: ${JSON.stringify(event.data)}`);
chrome.runtime.sendMessage(event.data);
});
const webview = document.querySelector('webview');
webview.addEventListener('loadstop',() => {
webview.contentWindow.postMessage({from: 'app', cmd: 'init'}, webview.src);
});
function handleMessage(message) {
if (message.from === 'anotherwindow') {
console.log('webview window received message from another window, sending it to webview');
webview.contentWindow.postMessage(message, webview.src);
}
}
chrome.runtime.onMessage.addListener(handleMessage);
저는이 방법을 알고 있습니다 만, Window1에서 보내진 데이터가 Window2에 의해 직접 수신되도록 (동일한 창에서) webview로 보내길 원합니다. – user2659489