1

AFAIK 我们无法访问从不同域加载的 iframe 的 DOM 内容。但就我而言,我有一个名称如下的网站

 http://dom1.myMainDomain.com/******  

在该页面中,我将一个 HTML 文件从子域加载到上述网站的 Iframe 中,该网站是上述的子域。IE

 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

4

2 回答 2

6

您必须document.domain = "myMainDomain.com";在 paretnt page 和 here 中都这样做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 中都有document.domain = "com.local";javascript

于 2012-09-06T11:38:59.640 回答
0

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

var iframe = $('iframe'); // or some other selector to get the iframe
//handle the code you need using the iframe variable.
于 2012-09-06T11:07:26.710 回答