如何在父页面上调用iframe子页面的js方法

JavaScript016

如何在父页面上调用iframe子页面的js方法,第1张

这个其实应该放在《多个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)

Firefox, Chrome 测试通过,没问题。

如果在IE 中有问题, 可能是因为array元素所指向的对象随着子页面关闭,也已经不存在,所以产生错误。

可以在父页面中复制一下被add的obj, 这里用了JSON来复制obj:

var array = []

function addLine(obj){

                                

array.push(JSON.parse(JSON.stringify(obj)))       

//array.push(obj)

}