我正在尝试修改iframe的内容,但它不起作用。
这是我的main.html
<html>
<head><title>Main page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<h3>Main page</h3>
<iframe src="ifr.htm" id="ifr" name="ifr"></iframe>
</body>
<script>
$(document).ready(function(){
$('#ifr').load(function(){
$('#ifr').contents().find('body').html('Hey, i`ve changed content of <body>! Yay!!!');
});
});
</script>
</html>
这是我的ifr.htm
<html>
<head><title>Iframe page</title></head>
<body>
Content to be displayed in iframe ...
</body>
</html>
答案 0 :(得分:16)
请不要忘记cross-domain
政策,否则无效。
现场演示: http://jsfiddle.net/oscarj24/wTWjF/
(只是要知道,我没有使用404页面,看看)
试试这个:
$(document).ready(function(){
$('#ifr').ready(function(){
$(this).contents().find('body').html('Hey, I have changed content of <body> Yay!');
});
});
答案 1 :(得分:2)
假设您尊重跨域策略,这听起来像是一个时间问题。当父页面的document.ready
触发时,您的iframe已经完成加载。
您可以尝试将frame.load
更改为frame.ready
,因为如果已在触发就绪事件后绑定.ready
,{{1}}将立即触发。
答案 2 :(得分:1)
你会做这样的事情:
您将src
的{{1}}属性设置为空白页(blank.htm)或“”,然后在就绪处理程序中将src更改为 ifr.htm 强>
iFrame