跨域JavaScript,嵌入iframe案例中的父位置设置

跨域JavaScript,嵌入iframe案例中的父位置设置,javascript,iframe,cross-domain,Javascript,Iframe,Cross Domain,有一种称为片段Id消息传递的解决方案,通过将parent.location设置为额外的文本,后跟from child iframe来解决跨域通信问题,它可以工作。但是,如果父级本身作为iframe嵌入到另一个页面中,则浏览器似乎拒绝parent.location设置。。。 这是真的吗?如果是,是否有工作安排 谢谢 您遇到了哪些浏览器问题,您看到的确切错误消息是什么 一般来说,即使在您描述的场景中,FIM也应该正常工作,许多主要网站都使用它 FIM仅在IE8、FF3、Chrome和Opera 10

有一种称为片段Id消息传递的解决方案,通过将parent.location设置为额外的文本,后跟from child iframe来解决跨域通信问题,它可以工作。但是,如果父级本身作为iframe嵌入到另一个页面中,则浏览器似乎拒绝parent.location设置。。。 这是真的吗?如果是,是否有工作安排


谢谢

您遇到了哪些浏览器问题,您看到的确切错误消息是什么

一般来说,即使在您描述的场景中,FIM也应该正常工作,许多主要网站都使用它


FIM仅在IE8、FF3、Chrome和Opera 10支持的HTML5 postMessage API不可用时使用,因为postMessage更安全、更可靠。

支持postMessage API的现代浏览器提高了安全性,从而阻止了这种帧内通信。在不支持此功能的浏览器上,您使用的技术应该可以。唯一的例外是Safari 3.2,它不支持HTML 5 postMessage API,并且在某些情况下不允许您设置parent.location

另一个问题是,虽然IE8实现了PostMessageAPI,但可以预见,它的实现方式与所有其他浏览器FF3+、Chrome、Safari 4+和Opera 9.64+有所不同。在IE8中,不允许在弹出窗口和它的开启器之间进行postMessage通信,这意味着您需要为IE8使用任何其他浏览器都不需要的额外iframe

最终的结果是,要在远程域上实现页面和弹出窗口之间的通信,您需要一个分支用于现代浏览器,一个分支用于旧浏览器,另外一个分支用于IE8、IE7和IE6。谢谢微软


祝你好運 :

哦,目前我正在使用Firefox3.5.1,错误消息为[拒绝访问属性代码:1010]。。。看起来这里报告了一个bug。IE8可以很好地处理这个问题。非常感谢。美国国歌上写着:哦,上帝,你能看出来吗?