Vue 使用iframe引用html页面实现vue和html页面方法的调用操作


Posted in Javascript onNovember 16, 2020

当我们需要在vue中使用其他模块或者其他地方的一些html页面功能时,我们可以使用iframe去引用html页面,实现他们的交互

首先我们可以再vue页面中使用标签引用html页面

<template>
 <div>
  <iframe
   name="iframeMap"
   id="iframeMapViewComponent"
   width="100%"
   height="470px"
   v-bind:src="smgHtmlPath"
   frameborder="0"
   scrolling="no"
   ref="iframeDom"
  ></iframe>
 </div>
</template>

其中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="www.baidu.com#asd=1" width="1920" height="880" frameborder="0" scrolling="no" style="position:related;top: 2.8px;left: 0px;"></iframe>

asd后面跟的值可以根据需要更改,不影响地址的访问

若为本地html文件,类似的可以写作

:src="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页面方法的调用操作

以上这篇Vue 使用iframe引用html页面实现vue和html页面方法的调用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
iframe子父页面调用js函数示例
Nov 07 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
js动态往表格的td中添加图片并注册事件
Jun 12 Javascript
Javascript基础教程之变量
Jan 18 Javascript
javascript实现checkbox复选框实例代码
Jan 10 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
vue实现键盘输入支付密码功能
Aug 18 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 Javascript
Vue指令实现OutClick的示例
Nov 16 #Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 #Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 #Javascript
小程序自定义弹框效果
Nov 16 #Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 #Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 #Javascript
小程序实现上下切换位置
Nov 16 #Javascript
You might like
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
cument.execCommand()用法深入理解
2012/12/04 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python根据文本生成词云图代码实例
2019/11/15 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
职业教育毕业生求职信
2013/11/09 职场文书
高级技校毕业生自荐信
2013/11/18 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
捐助倡议书范文
2014/04/15 职场文书
公民授权委托书范本
2014/09/17 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
监理中标通知书
2015/04/16 职场文书
通讯稿格式及范文
2015/07/22 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python
Python语言规范之Pylint的详细用法
2021/06/24 Python
SQL 聚合、分组和排序
2021/11/11 MySQL