IFrame消息傳遞


第一種IFrame通信:

 

//這個消息從A的作用域發出

this.contentWindow.postMessage({}, "*");

//B作用域開啟監聽獲取A發過來的消息

window.addEventListener('message', function (event) {
});

//B向A發出消息

window.parent.postMessage({ }, '*');

//反過來A接收B發過來的消息

window.addEventListener('message', function (event) {
});

第二種IFrame通信:

//D向E通信

document.getElementById('E IFrame 的ID').contentWindow.postMessage({}, '*'); 

//接收消息都是同一種方式

window.addEventListener('message', function (event) {
});

---實際運用

       //發出消息
            this.contentWindow.postMessage({
                type: 'message-1',
                body: {
                    args: '消息內容 可以是任何對象'
                }
            }, '*');
            //發出消息
            document.getElementById('outpAdmissionOrderFrame').contentWindow.postMessage({
                type: 'message-2',
                body: {
                    args: '消息內容 可以是任何對象'
                }
            }, '*');
            //接收消息
            window.addEventListener('message', function event(event) {
                if (event.data.type === "message-2") {
                    //event.data.body獲取消息內容
                    //處理
                } else if(event.data.type === "message-1"){
                    //event.data.body獲取消息內容
                    //處理
                }
            });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM