

在layer中如果iframe彈窗頁面為跨域請求時返回要關閉父級窗口時,會出現(xiàn)錯誤: Blocked a frame with origin “xxx“ from accessing a cross-origin frame
主要原因:
內(nèi)嵌 iframe 頁面,一般使用 window.parent 或 window.top 來獲取父頁面的 window 對象
在子頁面 想使用(或傳遞給) 父頁面的參數(shù),但是原因兩個的域名不一樣,所以會出現(xiàn)跨域問題。
解決方法:
1、父頁面監(jiān)聽 message,寫法固定
window.addEventListener('message', function (e) {
console.log(e)
})
2、子頁面發(fā)送 message 消息,并附帶參數(shù)
// window.parent 是 iframe 子頁面獲取父頁面的 window 對象
// 后面的 * 號就是處理跨域問題的,任何域名都不會出現(xiàn)跨域問題
window.parent.postMessage("需要傳遞的參數(shù)", '*')
// 也可以指定傳送域名地址,這個域名不會出現(xiàn)跨域問題,寫父頁面(接收)域名地址
window.parent.postMessage("需要傳遞的參數(shù)", 'http://0.0.0.0:8080')
如果不跨域的話,關閉方法為:
layer.open({ content:data ,btn: ["確定"] ,yes: function (index,layero) { let indexOfFather = parent.layer.getFrameIndex(window.name); parent.layer.close(indexOfFather); //關閉頁面 window.parent.location.reload(); //刷新父頁面 } })
【版權聲明】:本站內(nèi)容來自于與互聯(lián)網(wǎng)(注明原創(chuàng)稿件除外),供訪客免費學習需要。如文章或圖像侵犯到您的權益,請及時告知,我們第一時間刪除處理!謝謝!
售后服務:13534259410 (7×24小時)
在線 Q Q:253849310 (售前咨詢)
深圳無雙科技,專注于深圳網(wǎng)站建設、深圳網(wǎng)站設計、深圳網(wǎng)站制作。
服務客戶超3000家,一站式網(wǎng)站建設及推廣營銷解決方案提供商。
我們的價值觀:誠信、坦誠、盡責、創(chuàng)新。期待與您合作!