vue中使用iframe 跨域 消息通讯方案
时间: 2023-11-25 16:04:18 浏览: 115
iframe+postMessage实现跨域通信
在Vue中使用iframe跨域通讯,可以通过postMessage API实现。
首先,在父窗口中使用iframe标签嵌入子窗口,并给iframe添加一个id属性,例如:
```html
<iframe id="myFrame" src="https://子域名.com"></iframe>
```
然后,在父窗口中监听message事件:
```javascript
window.addEventListener('message', function(event) {
// 接收到子窗口的消息
console.log('Received message:', event.data);
});
```
在子窗口中,可以通过parent属性获取父窗口的window对象,并使用postMessage方法发送消息给父窗口:
```javascript
var parentWindow = window.parent;
parentWindow.postMessage('Hello, parent window!', '*');
```
其中第二个参数'*'表示发送给所有窗口,也可以指定发送给特定窗口的域名。
在父窗口中接收到子窗口发送的消息后,可以根据需要进行处理。需要注意的是,收到的消息是一个字符串,需要进行解析才能得到真正的数据。同时,需要对接收到的消息进行验证,以防止恶意攻击。
阅读全文