当我们需要在vue中使用其他模块或者其他地方的一些html页面功能时,我们可以使用iframe去引用html页面,实现他们的交互
首先我们可以再vue页面中使用标签引用html页面
<template> <div> <iframe name="iframeMap" id="iframeMapViewComponent" width="100%" height="470px" v-bind:src="/UploadFiles/2021-04-02/smgHtmlPath">其中src就是我们html的地址,我们可以在data中定义smgHtmlPath属性,在我们的created方法中初始化,为该属性赋予初始值
如果页面加载出来了,我们就可以开始vue页面和html页面的交互了
如果我们需要vue页面调用html页面方法,我们可以使用如下代码
mounted() { this.iframeWin = this.$refs.iframeDom.contentWindow; },首先在我们的mounted方法中得到iframe对象
在vue页面使用postMessage的API向html页面发送请求数据,因为我们的vue和html页面可能不在同一域名,所以会产生跨域的问题,这里我们使用的postMessage可以实现跨域,我这里在google和IE11测试都是可以跨域的
loadSmgxmlModels(data) { this.iframeWin.postMessage(data,"*") }这里的data就是我们要传递给html页面的数据
“*”,这里代表的是所有地址可以接收到,我们也可以指定地址,例如:www.baidu.com
在html页面的标签中编写监听方法,用来监听我们的请求,获取数据
window.addEventListener('message', function(ev) { // 当我们是父子窗口进行消息传递时,可以使用此判断,只接受父窗口传递来的消息, if (ev.source !== window.parent) return; var data = ev.data; console.log("vue传递的数据为:"+data); //下面可以调用我们html页面js中的方法,使用传递的数据进行操作了 }, false);这里我们监听的就是message,可以获取数据。
补充知识:Vue界面使用iframe嵌套html界面的传值问题
一.从父页面给子页面传值
可以通过url进行传值,若嵌入外网例如www.baidu.com,可以设置为
<iframe name = "child" id = "child" :src="/UploadFiles/2021-04-02/www.baidu.com#asd=1">
asd后面跟的值可以根据需要更改,不影响地址的访问
若为本地html文件,类似的可以写作
:src="/UploadFiles/2021-04-02/test.html#asd =1">
但是如何在子页面读取asd的值这个还没探究成功,稍后若寻找到合适的方法会再更新。这种方法比较适合比较简单的需求
二.父页面获取子页面的值
例如我们在子页面设置四个click事件,JS代码如下
<script> var n = 0; function FN() { n = 1; alert('hello1'+n); } function EN() { n = 2; alert('hello1'+n); } function ER() { n = 3; alert('hello1'+n); } function GN() { n = 4; alert('hello1'+n); } </script>那么在父页面我们可以在method中定义如下函数获取到n的值
callchild(){ let obj1=window.frames["child"];//获得对应iframe的window对象 alert(obj1.n); },将callchild函数由某个button触发,可以看到弹出窗口
以上这篇Vue 使用iframe引用html页面实现vue和html页面方法的调用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]