vue项目vue组件和iframe通信

vue项目iframe通信

  1. 父组件传入iframe参数,并接受iframe数据

    <template>
        <div>
            <a-button type="primary" @click="sendPostMessage" icon="search">查询</a-button>
            <iframe ref="iframe" style="height: 100%;width: 100%;" :src="editSrc" frameborder="0"
                    id="iframe_dutyOperation"></iframe>
    	</div>
    </template>
    
    export default {
        mounted() {
            // j接收iframe发送的数据
            window.addEventListener('message', this.handlerMessage)
        },
        methods:{
            sendPostMessage() {
                // 获取iframe的window对象
                let contentWindow = this.$refs.iframe.contentWindow
                if (!contentWindow) return false
                contentWindow.postMessage({
                    cmd: 'sendParams',
                    params: {
                        template: '',
                        id: ''
                    }
                }, '*')
            },
    
            handlerMessage(e) {
                if (e.data.cmd === 'returnData') {
                    console.log(' 传递过来的数据  returnData', e.data)
                }
            }
        }
    
  2. iframe接受数据信息,并返回数据文章来源地址https://uudwc.com/A/5de01

    export default {
        mounted() {
            window.addEventListener("message", e => {
                //监听message 收到数据e.data;
                if (e.data.cmd === 'sendParams') {
                    console.log('----------', e.data.params);
                }
            })
        },
        methods:{
            // 给父组件返回数据
            sendReturn(){
                window.parent.postMessage({
                    cmd: 'returnData',
                    params: {
                        state: 200
                    }
                }, '*');
            },
        }
    }
    

原文地址:https://blog.csdn.net/qq_39019768/article/details/132038043

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年08月02日 01:11
【计算机网络】408统考2014年题36
下一篇 2023年08月02日 01:11