iframe怎么通过js修改子页面的内容

index.html中有个iframe,默认src为main.html,我通过js将src改为including.html,想在同一个function中对including中的iframe进行修改,该怎么做啊?
代码如下:
-----------------------------------------
index.html
<body>
<a href="javascript:void(0);" click="inc('调用的页面.html')"></a>
<iframe id="ifm" name="ifm" src="main.html"></iframe>
</body>
<script>
function inc(dz){
$("#ifm").attr("src","including.html");

ifm.tiao(dz)

}
</script>
------------------------------------------
including.html
<body>
<iframe id="incifm" name="incifm" src=""></iframe>
</body>
<script>
function tiao(dz){
$("#incifm").css("margin-top","-195px");
$("#incifm").css("height","665px");
}
</script>

1、iframe子页面调用父页面js函数

子页面调用父页面函数只需要写上window.praent就可以了。比如调用a()函数,就写成:

代码如下:

window.parent.a();

子页面取父页面中的标签中的值,比如该标签的id为“test”,则:

代码如下:

window.parent.document.getElementById("test").value;

jQuery方法为:

$(window.parent.document).contents().find("test").val();

但是我在chrome浏览器下却发现此方法无效了!查了半天才了解,在chrome 5+中,window.parent无法在file://协议中运行,但是发布了之后http://协议下是可以运行的。此方法支持ie、firefox浏览器。

2、iframe父页面调用子页面js函数

代码如下:

这个就稍微复杂一些,下面的方法支持ie和firefox浏览器:

document.getElementById('ifrtest').contentWindow.b();

子页面取父页面中的标签中的值,比如该标签的id为“test”,则:

document.getElementById("test").value;

注:ifrtest是iframe框架的id,b()为子页面js函数。contentWindow属性是指定的frame或者iframe所在的window对象,IE下可以省略。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-07
var ifm= document.getElementById("ifm");
ifm.onload = function(){
var subWeb = document.frames ? document.frames["ifm"].document :
ifm.contentDocument;
subWeb.tiao(dz);
}追问

这样写么?

追答

对,获取subWeb需要放在ifrm.onload里

本回答被提问者和网友采纳
相似回答