iframe 跨域頁面之間傳值

父頁面向子頁面傳值
通過H5的postMessage方法傳值
首先,在父頁面A中建立一個iframe,其中src要寫好子頁面B的地址,然後在A頁面中寫如下方法:

<iframe [src]="iframeSrc" id="overviewView" width="100%" height="100%" frameborder="0"></iframe>

var iframeSrc= "https://www.baidu.com";
var iframe: any = document.querySelector('#overviewView');

 iframe.contentWindow.postMessage(msg,childDomain);
 
 //iframe.contentWindow.postMessage({ type: 'iframeScroll', scrollTop: 850 }, '*');

childDomain與A的iframe的src地址不一樣,childDomain是域,而src是域中的一個頁面
msg是傳輸的信息,可以是字符串,也可以是對象。
上面的方法一定要寫在一個函數中,並通過點擊事件調用,如果希望iframe開始爲空,點擊後在設置src,
可以在設置src之後,通過setTimeout設置一定時間後在傳輸信息。

在子頁面B中,通過對window添加事件獲取傳輸過來的信息:

    window.addEventListener('message', function (e) {
        console.log(e);
        if (e.data && e.data.type === 'iframeOnScroll') {
         console.log(e.data.scrollTop);
        }
       }//,false
       );

這樣就成功的從不同域的父頁面向子頁面傳值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章