iframe跨域問題:Uncaught DOMException: Blocked a frame with origin解決方法


在前后端分離的情況下,前台頁面將后台頁面加載在預留的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的。


免責聲明!

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



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