开发中遇到了这样的问题,有一个需求就是在脚本中打开一个新窗口,并且要从新窗口返回值到父窗口。用window.showModalDialog()函数可以打开一个窗口,并且可以从这个新窗口得到返回值,只要新窗口中有这样的语句:window.returnValue = values;values为新窗口的返回值。但是firefox不支持showModalDialog()函数。所以在为了使网页实现IE和firefox兼容,要用window.open()函数打开新的窗口。但是要从新窗口获得返回值怎么办呢? Window.open()函数是没有返回值的,所以我是这么做的:
首先,用window.open()打开新的页面。
其次,再新窗口中,用parent.opener就得到了父窗口的引用。假如在父窗口有一个form的标单,标单中有id=page这个text。那么在弹出的窗口中就可以这样对他覆值:parent.opener.document.form.page.value=newvalues;这样就可以完成在弹出窗口对父窗口覆值的需求了。
本文介绍了一种在不同浏览器间使用window.open()打开新窗口并实现父窗口与子窗口间通信的方法,解决了Firefox不支持showModalDialog()的问题。

216





