使用iframe引用外部资源是相当便捷的手段,不过仅限于父页面不对iframe进行访问。当我们访问iframe文档中内容,时常会遇到跨域问题,导致对iframe里面的内容不可控,并且使用iframe对页面的性能有很大的影响。今天笔者遇到一个相当郁闷的问题,关于iframe的document.domain的设置。
有两个页面,一个是a.html为父页面,一个是b.html为iframe页面,域名都是domain.xx.com。
一般情况下,这种设置在各大浏览器都成功。
document.domain = "domain.xx.com";
document.domain = "xx.com";
但问题就来料,如果你把上面的两个语句顺序倒一下:
document.domain = "xx.com";
document.domain = "domain.xx.com";
以上两句代码,在浏览器中会报错。
由此看出,域可以由domain.xx.com修改为xx.com,所有浏览器都支持,而不能
从xx.com修改为domain.xx.com
本文探讨了在iframe中设置document.domain的顺序问题,发现从子域修改为主域会导致浏览器报错,反之则正常,解释了这一现象并分析了其原因。
902

被折叠的 条评论
为什么被折叠?



