从iframe中的子域跨域访问JavaScript

从iframe中的子域跨域访问JavaScript,javascript,cross-domain,Javascript,Cross Domain,父页面位于site.com上。我在sub.site.com上有一个页面,该页面将通过iframe包含在父页面中。为此,应使sub.site.com页面将其域更新为site.com。但是,当我尝试此操作时,由于同源策略,仍然会出现拒绝访问错误 site.com: <html> <head></head> <body><iframe src="http://sub.site.com"/></body> </html>

父页面位于site.com上。我在sub.site.com上有一个页面,该页面将通过iframe包含在父页面中。为此,应使sub.site.com页面将其域更新为site.com。但是,当我尝试此操作时,由于同源策略,仍然会出现拒绝访问错误

site.com:

<html>
<head></head>
<body><iframe src="http://sub.site.com"/></body>
</html>

sub.site.com:

<html>
<head>
<script>
    function setupPage() {
    try {
        var oldDomain="current iframe domain: ";
        oldDomain = oldDomain.concat(document.domain);
        alert(oldDomain);

        document.domain='sakai.rutgers.edu';
        var newDomain="new iframe domain: ";
        newDomain = newDomain.concat(document.domain);
        alert(newDomain);

        var parentDomain="parent domain: ";
        parentDomain = parentDomain.concat(parent.window.document.domain);
        alert(parentDomain);

    }
    catch (err) {
        var e = "Caught error: ";
        e = e.concat(err.message);
        alert(e);
    }
</script>
</head>
<body onload=setupPage()>
<p>Test Page</p>
</body>

函数设置页(){
试一试{
var oldDomain=“当前iframe域:”;
oldDomain=oldDomain.concat(document.domain);
警报(旧域);
document.domain='sakai.rutgers.edu';
var newDomain=“new iframe domain:”;
newDomain=newDomain.concat(document.domain);
警报(新域);
var parentDomain=“父域:”;
parentDomain=parentDomain.concat(parent.window.document.domain);
警报(父域);
}
捕捉(错误){
var e=“捕获错误:”;
e=e.concat(错误消息);
警报(e);
}
测试页

加载父页面时,前两个警报显示域按预期重置。但是,当脚本尝试访问
parent.window.document.domain
时,会抛出以下错误(在Chrome中): 捕获到错误:阻止原点为“”的帧访问跨原点帧


我遗漏了什么?

我认为在代码中您可能需要使用

parentDomain = parentDomain.concat(document.domain); 
而不是

parentDomain = parentDomain.concat(parent.window.document.domain);
在第一种情况下,我想它对当前窗口可用,因此它将获取文本并连接它

parent.window.frames.documents............ 
希望这能有所帮助。我自己也不是大师,但我以前遇到过这种情况,这种技术解决了这个问题