【vue页面调用iframe嵌入页面方法并且传值,iframe里调用外部vue页面方法】

文章目录

前言

1.外部vue页面

2.iframe页面

总结


前言

需求:

        vue项目里嵌入iframe页面,需要调用iframe页面里的方法并且把值传入进去来进行执行后续操作,如执行成功,需要在返回调用外部vue页面方法。


提示:以下是本篇文章正文内容,下面案例可供参考

、具体代码

1.外部vue页面

代码如下(示例):

<!--
    vue页面嵌入所要嵌入的iframe
-->
<template>
  <div>
    <iframe ref="iframe" :src="iframeSrc" id="iframeId"></iframe>
    <el-button @click="driveFlowInstance('测试')">点击</el-button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      iframeSrc: "" //这是要嵌入的页面url 这里就不写了
    };
  },
  methods: {
    //外部调iframe里方法
    //触发方法,type需要传入的值//调用iframe里的方法并且传值
    driveFlowInstance(type) {
      var iframe_home = document.querySelector("#iframeId");
      //["updateDubanForm"]这一部分是调用iframe里的方法命,里面"updateDubanForm"可以换成一个变量.
      //也可以写成iframe_home.contentWindow.updateDubanForm(type);
      iframe_home.contentWindow["updateDubanForm"](type);
    },

    //iframe里调外部方法
    //方法名一定要保持一直,不然调用不到
    iframeTextClick(row) {
      console.log(row);
    }
  },

  async mounted() {
    //iframe里调外部方法
    //因为是vue的语法进行写,一定要这样把方法进行生命,不然iframe回调这个方法找不到
    window.iframeTextClick = this.iframeTextClick;
  }
};
</script>

<style scoped></style>

2.iframe页面

代码如下(示例):

<!--
    iframe页面这里我是用vue来写的
-->
<template>
  <div>
    <!--这是iframe页面回调于外部页面按钮并且回调传值-->
    <el-button @click="textClick('测试1122')">iframe调外部方法</el-button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  methods: {
    //外部调用iframe里方法
    //这是vue要调用的方法,方法命要和外部调用的一致
    updateDubanForm(type) {
      console.log(type);
    },

    //iframe里调外部方法
    //按钮触发方法,iframe回调执行外部方法
    textClick(row) {
      //回调
      window.parent.iframeTextClick(row);
    }
  },
  //初始化窗体
  mounted() {
    //外部调用iframe里
    //因为是vue的语法进行写,一定要这样把方法进行生命,不然外部调用这个方法找不到
    window.updateDubanForm = this.updateDubanForm;
  }
};
</script>

总结

提示:这里我把外部调里,里调外我都整合在一起写了,具体看注解。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值