为了账号安全,请及时绑定邮箱和手机立即绑定

如何在iframe和父网站之间进行通信?

如何在iframe和父网站之间进行通信?

慕码人8056858 2019-07-25 16:44:54
如何在iframe和父网站之间进行通信?iframe中的网站不在同一个域中,但两者都是我的,我想iframe在父网站之间进行通信。可能吗?
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

对于不同的域,无法直接调用方法或访问iframe的内容文档。

您必须使用跨文档消息传递

例如在顶部窗口中:

 myIframe.contentWindow.postMessage('hello', '*');

在iframe中:

window.onmessage = function(e){
    if (e.data == 'hello') {
        alert('It works!');
    }};

如果要将iframe中的消息发布到父窗口

window.top.postMessage('hello', '*')


查看完整回答
反对 回复 2019-07-25
?
侃侃无极

TA贡献2051条经验 获得超10个赞

它必须在这里,因为2012年接受了答案

在2018年和现代浏览器中,您可以将自定义事件从iframe发送到父窗口。

IFRAME:

var data = { foo: 'bar' }var event = new CustomEvent('myCustomEvent', { detail: data })window.parent.document.dispatchEvent(event)

父:

window.document.addEventListener('myCustomEvent', handleEvent, false)function handleEvent(e) {
  console.log(e.detail) // outputs: {foo: 'bar'}}

PS:当然,您可以以相反的方向发送相反方向的事件。

document.querySelector('#iframe_id').contentDocument.dispatchEvent(event)


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 583 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信