【跨域】document.domain

原理:相同主域名不同子域名下的页面,可以设置 document.domain 让它们同域
限制:同域document提供的是页面间的互操作,需要载入iframe页面
http://testa.cdeledu.com  http://testb.celedu.com可以通过 document.domain 跨域互操作
但只能以页面嵌套的方式来进行页面互操作,比如常见的 iframe 方式就可以完成页面嵌套:
http://testb.cdeledu.com/1.html想读取http://testa.cdeledu.com/remote.html的内容

http://testb.cdeledu.com/1.html代码如下:

<html>
<body>
<script>
//document.domain = 'cdeledu.com'
var ifr = document.createElement('iframe');
ifr.src = 'http://testa.cdeledu.com/remote.html';
ifr.style.display = 'none'; //隐藏元素
document.body.appendChild(ifr);
ifr.onload = function(){
    var doc = ifr.contentDocument || ifr.contentWindow.document;
    alert(doc.getElementsByTagName("h1")[0].innerHTML);
};
</script>
</body>
</html>

http://testa.cdeledu.com/remote.html代码如下:

<script>
//document.domain = 'cdeledu.com'
</script>
<h1>xxxxx</h1>

Console的打印信息如下:
Failed to read the ‘contentDocument’ property from ‘HTMLIFrameElement’: Blocked a frame with origin “http://testb.cdeledu.com” from accessing a cross-origin frame at HTMLIFrameElement.ifr.onload

将两个文件中的//document.domain = ‘cdeledu.com’的注释符去掉。
访问http://testb.cdeledu.com/1.html结果如下:

可以读取到remote.html中的内容。