子域iframe内容访问代码在Chrome中无效

时间:2012-09-06 11:05:37

标签: jquery iframe

AFAIK我们无法访问从不同域加载的iframe的DOM内容。但在我的情况下,我有一个名称

的网站
 http://dom1.myMainDomain.com/******  

在该页面中,我将一个来自子域的HTML文件加载到上述网站中的iframe,该网站是上述子域。即

 http://dom2.myMainDomain.com/******/1.html

我已尝试过以下代码,但它无效

 $(document).ready(function () {
    var str = "http://dom1.myMainDomain.com/*****Images/";
    $('body').append('<iframe id="ifr" style="position:absolute;top:0px;left:0px;width:100%;height:100%" src="' + str + $('#htmNum').val() + '.html"></iframe>');
    document.domain = "myMainDomain.com";
    $('#ifr').load(function () {
        $('#ifr').contents().find('body').html('Hey, i`ve changed content of <body>! Yay!!!');
    });
});

但它对我不起作用..我嵌入上述代码的网站是

http://dom2.myMainDomain.com/*****.aspx    

Please help me on this. As per the answer I have tried and it was working in IE7./ But in Chrome I can see permission denied message

2 个答案:

答案 0 :(得分:5)

您必须在paretnt页面和此处document.domain = "myMainDomain.com";http://dom1.myMainDomain.com/*****Images/。您的文档就绪功能正常,但您也应该在此http://dom1.myMainDomain.com/*****Images/中使用类似的代码。我会把它放在像

这样的头部
<head>
<script type="text/javscript">
   document.domain = "myMainDomain.com";
</script>
</head>

并且假设将相同的代码放在父文档的头部会更好。只是为了确保在访问iframe时正确设置了所有内容

呀。只需仔细检查一下。我可以使用以下代码访问iframe内容:

$("iframe").contents().find("body")

如果在父窗口和iframe中,javascript中都有document.domain = "com.local";

答案 1 :(得分:0)

由于它们位于同一个域中,请尝试以下操作:

var iframe = $('iframe'); // or some other selector to get the iframe
//handle the code you need using the iframe variable.