要捕获iframe窗口的响应并发送给父窗口,可以使用JavaScript的postMessage()方法来实现。下面是一个示例代码:
在父窗口中:
// 监听子窗口的消息
window.addEventListener('message', function(event) {
// 确保消息来自指定的iframe
if (event.source === iframe.contentWindow) {
// 处理接收到的消息
console.log('Received message from iframe:', event.data);
}
});
// 获取iframe元素
var iframe = document.getElementById('myIframe');
// 向iframe发送消息
iframe.contentWindow.postMessage('Message from parent window', '*');
在iframe窗口中:
// 监听父窗口的消息
window.addEventListener('message', function(event) {
// 确保消息来自指定的父窗口
if (event.source === parent) {
// 处理接收到的消息
console.log('Received message from parent window:', event.data);
// 向父窗口发送响应
parent.postMessage('Response from iframe', '*');
}
});
在父窗口中,我们使用window.addEventListener()方法来监听message事件,当收到来自子窗口的消息时,我们可以通过event.source属性来验证消息的来源,并通过event.data属性来获取消息的内容。
在子窗口中,我们也使用window.addEventListener()方法来监听message事件,当收到来自父窗口的消息时,我们同样可以通过event.source属性来验证消息的来源,并通过event.data属性来获取消息的内容。然后,我们可以通过iframe.contentWindow.postMessage()方法向父窗口发送响应。