【小结】vue2项目中,用iframe标签加载本地html文件,并实现html文件向vue页面发送消息

271 阅读1分钟

在Vue项目中通过iframe访问本地HTML文件,并实现HTML文件向Vue页面发送消息,也可以使用window.postMessage()方法来进行跨域通信。

首先,在Vue项目中的父组件中,可以通过监听window的message事件来接收来自HTML文件的消息。示例代码如下:

Vue项目中通过iframe访问本地HTML文件,并实现HTML文件向Vue页面发送消息,也可以使用window.postMessage()方法来进行跨域通信。

首先,在Vue项目中的父组件中,可以通过监听window的message事件来接收来自HTML文件的消息。示例代码如下:

在上述代码中,通过监听window的message事件来接收来自HTML文件的消息。可以通过event.origin属性来判断消息的来源,然后使用event.data属性获取到消息内容。

然后,在HTML文件中,可以通过parent.postMessage()方法向父组件发送消息。示例代码如下:

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Child HTML</title> </head> <body> <script> // 向父组件发送消息 parent.postMessage('Hello from HTML', 'http://localhost:8080'); </script> </body> </html>

在上述代码中,使用parent.postMessage()方法向父组件发送消息。第一个参数是要发送的消息内容,第二个参数是目标窗口的源,需要指定父组件的域名和端口号。

通过以上方法,可以在Vue项目中通过iframe访问本地HTML文件,并实现HTML文件向Vue页面发送消息。请注意,需要确保父子组件的域名和端口号一致,以避免跨域问题。