在前后端分離的情況下,前台頁面將后台頁面加載在預留的iframe中;但是遇到了iframe和主窗口雙滾動條的情況,由此引申出來了問題:
只保留單個滾動條,那么就要讓iframe的高度自適應,而從主頁面顯然直接取不到iframe的值,因為這是跨域的(前台頁面與后台頁面不在同一個IP地址或者同一個端口),嘗試訪問會報錯:
Blocked a frame with origin "http://7.35.0.8:8080" from accessing a frame with origin "http://7.35.0.9:8080".Protocols, domains, and ports must match.
解決方案如下:
//主頁面 向 iframe傳遞事件 //主頁面
var frame = document.getElementById('iframeId'); frame.contentWindow.postMessage(object,'*');
//iframe頁面 iframe: window.addEventListener('message',function(event){ //此處執行事件 })
//iframe向主頁面傳遞事件
//iframe頁面 window.parent.postMessage(object,'*'); //主頁面 window.addEventListener('message',,function(event){ //此處執行事件 })
親測解決,ok的。