iframe postmessage传递参数
时间: 2023-10-15 12:22:59 浏览: 120
使用 iframe 和 postMessage 方法可以在不同的窗口之间传递参数。下面是一个示例代码:
在父窗口中,使用 postMessage 方法发送消息:
```javascript
var iframe = document.getElementById('myIframe');
iframe.contentWindow.postMessage('Hello', 'https://example.com');
```
在子窗口(iframe)中,监听父窗口的消息:
```javascript
window.addEventListener('message', function(event) {
if (event.origin !== 'https://example.com') return; // 验证消息来源
var message = event.data;
console.log(message); // 输出 'Hello'
});
```
在上述代码中,父窗口使用 postMessage 方法向子窗口发送了一条消息('Hello')。子窗口通过监听 message 事件来接收消息,并且通过 event.data 获取到消息的内容。
需要注意的是,在实际使用中要确保验证消息来源,以防止安全问题。可以通过比较 event.origin 和预期的来源来进行验证。
同时,还可以在消息中传递更复杂的参数,例如对象或数组。在发送消息时,可以将参数以 JSON 字符串的形式发送,接收方可以将字符串解析为对应的对象或数组。
希望以上信息能对你有所帮助!如有更多问题,请继续提问。
阅读全文