以上代码在大多数情况下是对的。但有种情况,即父页面显式的写了document.domain = "xxx";
在ie系列(IE10没试过)会出现没权限的错误。 而在firefox,chrome都没问题.
这是为什么呢?这是ie的一个bug,即父页没有显式的设置document.domain时,iframe会默认document.domain与父页面一致,即都是
location.host,父子页面是可以进行通信,即文章头的例子, 但当父页面显式的设置了document.domain="",iframe里面的页面必须也显式的设置document.domain="xxx",否则是
没有权限得到iframe.contentWindow.document的, 即也没办法去动态写内容,其实也可以让iframe指向一个特定的页面,这个页面显式的设置document.domain="xxx",再通过文章开头的方
的方式来写,但问题是我的父页面有很多这样的iframe,个数是未知的(都是广告位),所以也不能通过特定页面。
这样问题就来了,在这种情况下,我们貌似没有办法
1. 父页面设置了并且必须会显式的设置document.domain
3.没有机会为iframe设置src。
但上面3个条件都满足时,我们可以通过伪协议来解决此类的问题。
代码如下: