Javascript 从沙盒iframe到父级的IE PostMessage

Javascript 从沙盒iframe到父级的IE PostMessage,javascript,internet-explorer,Javascript,Internet Explorer,我有一个沙盒iframe,只设置了“允许脚本”,其他所有内容都关闭了。在沙盒iframe中,访问者可以运行一些自定义脚本,这就是为什么我不希望设置“允许相同来源”(这是不安全的)。所以我决定使用“PostMessage”在父对象和框架之间进行通信 这在Chrome和FF中起作用,但在IE中不起作用。经过调查,IE中的沙盒iframe似乎完全禁用了对window.parent的访问,这也禁用了window.parent.contentWindow.postMessage()。如果我在iframe上

我有一个沙盒iframe,只设置了“允许脚本”,其他所有内容都关闭了。在沙盒iframe中,访问者可以运行一些自定义脚本,这就是为什么我不希望设置“允许相同来源”(这是不安全的)。所以我决定使用“PostMessage”在父对象和框架之间进行通信

这在Chrome和FF中起作用,但在IE中不起作用。经过调查,IE中的沙盒iframe似乎完全禁用了对
window.parent
的访问,这也禁用了
window.parent.contentWindow.postMessage()。如果我在iframe上“允许相同的原点”,它就可以工作,但在我的例子中,这不是选项

我当时的印象是,postMessage是为了解决跨来源问题而存在的,它的通信方式,仅限于字符串,基本上就足够了。Chrome和FF的行为似乎证实了这一点。但是IE关闭沙盒的iframe(我猜也是来自其他域的iframe)太多了,以至于连postMessage都不能使用


我迷路了。我是否遗漏了一些明显的问题?

因为我无法删除一个问题,所以我会发布一个“答案”。问题似乎假设了一些不真实的事情。即使window.parent是“权限被拒绝”的,
postMessage()

让我困惑的是事件被传递到了接收端。Chrome和FF在本例中传递
event.source
为null,而IE传递的是完整的URL,在我的示例中为“”。这失败了一个if语句,消息没有被处理,这让我相信它根本没有被发送