iframe父页面vue、html与子页面html事件相互调用

9 篇文章 0 订阅

一. html页面中引入的iframe标签

 <iframe id="menuframe" name="menuframe" src="modal.html" frameborder="no" style="width:100%;height:100%></;"iframe> 
  1. 父html中调用子iframe html 中的事件
    通过contentwindow属性,其中 menuframe为当前的iframe的id, myClick为iframe html中的事件。
document.getElementById("menuframe").contentWindow.myClick();

通过name属性menuframe调用事件。

menuframe.window.myClick();
  1. 在iframe html 中调用父html的事件
 window.parent.myParentClick();

二.vue页面中引入的iframe标签

<iframe src="modal.html" id="menuframe" name="menuframe" :colorVal="colorVal" class="iframe" style="height:calc(100% - 15px);width: 100%;border-width: 0;"></iframe>

colorVal传递的参数

  1. 在vue组件中调用iframe html 中的事件
    两种方法:通过contentwindow属性
self.$refs.iframe.contentWindow.myClick();

通过name属性值menuframe调用事件

menuframe.window.myClick();
  1. 在iframe html 中调用vue methods的事件
    在vue中设置标识id 并将方法暴露在window中。
    vue页面如下:
export default{
    data(){
        return {
            vueId:"myParentId"
         }
     },
     methods:{
        modalsend(infojson){
            console.log(infojson)
        }
    },
    created(){
        let self = this
        window[this.vueId] = (infojson)=>{
             self.modalsend(infojson)        
        }
    }    

在iframe html如何调用modalsend事件:

 window.parent["myParentId"](infojson)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值