jquery,iframe,如何在父窗口监听,子窗口发生改变时,父窗口获取子窗口的值

JavaScript014

jquery,iframe,如何在父窗口监听,子窗口发生改变时,父窗口获取子窗口的值,第1张

①jquery在父页面 获取iframe子页面的元素

代码如下:(objid为子页面的id)

$("#objid",document.frames('iframename').document)

②js 在父页面获取iframe子页面元素代码如下:

window.frames["iframe_ID"].document.getElementByIdx_x("元素id")

以上两种都能获取到子页面中的元素,再根据元素去获取元素的值就可以了。

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

因为AngularJs用的人不多,我发现网上关于这方面的文章不多,所以我分享一下在AngularJs中是如何调用和接收的。

<app-dialog></app-dialog>其中dialog是子页面文件夹的名字,只需要把这个标签放在父页面中需要的地方即可。[sessionId]='sessionId',sessionId是父页面中的值,需要传到子页面中去的,父页面中的sessionId是需要定义的,而子页面需要这样来接收父页面中的sessionId,

'#dialogfile'相当于给子页面添加了一个id,在父页面中可以直接通过这个id来接收子页面的值和调用子页面的方法(如果是调用子页面的方法的话,方法名后面是需要加括号的),在父页面中需要这样来定义,

最后是子页面调用父页面的方法。

其中'this'指的就是父页面,而[parent]则是需要在子页面定义的一个名字可以随意更改,

记住调用父页面的方法,方法名后面是需要加括号的,如果有参数的话,直接写在括号里面就好。