解决 Blocked a frame with origin “xxx“ from accessing a cross-origin frame

  • 内嵌 iframe 页面,一般使用 window.parentwindow.top 来获取父页面的 window 对象

  • 在子页面 想使用(或传递给) 父页面的参数,但是原因两个的域名不一样,所以会出现跨域问题。

  • 解决办法

    1、父页面监听 message,写法固定

    window.addEventListener('message', function (e) {
      console.log(e)
    })
    

    2、子页面发送 message 消息,并附带参数

    // window.parent 是 iframe 子页面获取父页面的 window 对象
    
    // 后面的 * 号就是处理跨域问题的,任何域名都不会出现跨域问题
    window.parent.postMessage("需要传递的参数", '*')
    
    // 也可以指定传送域名地址,这个域名不会出现跨域问题,写父页面(接收)域名地址
    window.parent.postMessage("需要传递的参数", 'http://0.0.0.0:8080')
    

你可能感兴趣的:(Html,JavaScript,js,javascript,iframe)