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
答案 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.