js 与 iframe 之间互相传参
时间: 2023-08-19 18:30:47 浏览: 56
JavaScript 与 iframe 之间互相传参可以使用 postMessage 方法。postMessage 方法允许在不同的窗口或 iframe 之间传递数据,包括字符串、对象等。以下是在父窗口和 iframe 之间互相传递数据的示例。
在父窗口中,可以使用以下代码向 iframe 发送消息:
```javascript
var myIframe = document.getElementById('myIframe');
var message = {
name: 'John',
age: 30
};
myIframe.contentWindow.postMessage(message, '*');
```
在 iframe 中,可以使用以下代码接收来自父窗口的消息:
```javascript
window.addEventListener('message', function(event) {
// 只接收来自指定域名(或所有域名)的消息
if (event.origin !== 'http://example.com') return;
var message = event.data;
console.log(message.name); // 输出 'John'
console.log(message.age); // 输出 30
});
```
在上面的例子中,`*` 表示接收来自所有域名的消息,如果你只想接收来自特定域名的消息,可以将 `*` 替换为指定的域名。同时,为了避免跨站点脚本攻击(XSS),请在接收消息时验证消息的来源。