步骤:
1、获取iframe节点
2、获取iframe中的变量
示例
1
2
3
4
5
6
7
8
9
a.html
<iframe
id='x'
name='x'
src='b.html'/>
b.html
<script>
var
y='1'
</script>
在a.html中获取y,则可以通过以下方式
document.frames['x'].y
//先获取frame,在获取y
1、iframe子页面调用父页面js函数 子页面调用父页面函数只需要写上window.praent就可以了。比如调用a()函数,就写成: 代码如下:window.parent.a()子页面取父页面中的标签中的值,比如该标签的id为“test”,则: 代码如下:window.parent.document.getElementById("test").valuejQuery方法为: $(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下可以省略。这个其实应该放在《多个iframe之间js的通信问题》文章里,但是由于已经写完了,所以就在这里暂且作为补充巴。上一篇文章中,我们说的通信,仅仅说了一个方面,就是访问双方的dom树节点。其实除了访问dom,还有访问js方法也是很重要的。一、父页面访问iframe子页面的js方法
1)父页面
<iframe frameborder="0" name="myContentIframeName" id="myContentIframe"src="examples/completeDemo.html" style="width:99%height:600px"></iframe>
2)iframe页面
<script type="text/plain" id="editor" style="width:700px" >
</script>
<script type="text/javascript">
function getContent(){
var arr = []
arr.push("使用editor.getContent()方法可以获得编辑器的内容")
arr.push("内容为:")
arr.push(ue.getContent())
alert(arr.join("\n"))
return ue.getContent()
}
</script>
3)父页面调用iframe子页面js方法
var editor = window.frames["myContentIframeName"].getContent()
$("#lastContent").val(editor)