IE下设置document.domain造成无法和子Iframe通信的解决方法
在IE下如果父页面设置了document.domain = document.domain;
即使子页面iframe和父页面同源,父子页面也无法通信,此时需在子页面也加上 document.domain = document.domain;
在子页面判断是否可和父页面通信及修复的完整代码如下(就用上面的document.domain = document.domain也可达到同样目的):
try { var t = parent.document; if (!t) { document.domain = document.domain; } t = null; } catch (e) { document.domain = document.domain; } //will be removed after we use long domain try { var t = parent.document; if (!t) { document.domain = document.domain .match(/[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}$/); } t = null; } catch (e) { document.domain = document.domain.match(/[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}$/); }
还有一篇类似问题的文章地址:https://www.cnblogs.com/trmark/archive/2013/04/09/3010440.html