window.showModalDialogで開いたウィンドウから親ウィンドウに値を渡すのはwindow.openerだとダメでしたね
最近のWeb2.0的なオシャレページではほとんど見かけなくなった「showModalDialog」君ですが、業務系ではまだまだ健在なようで、たまに触るとあれれって思ったりするんですな。
showModalDialogで開いたウィンドウから親画面の関数呼び出し&引数渡そうとしたんだけど、FireFoxはOKでIEはNGだった。
そういや、showModalDialogでは別の方法でパラメータを渡すんだったと検索しながら思い出したとですよ。
んで、やりたいことはshowModalDialogを使った場合の、親ウィンドウ→子ウィンドウ、子ウィンドウ→親ウィンドウにパラメータを渡すってなことで、以下サンプルですたい。
親ウィンドウ
<html> <script language="Javascript"> <!-- function openChild() { var obj = {text1:document.all.text1.value, text2:document.all.text2.value}; rtn=window.showModalDialog( "child.html", obj, "dialogHeight:200px; dialogWidth:400px;"); document.getElementById("res").innerHTML = rtn; } --> </script> <body> <input type="button" value="windowを起動します" onclick="openChild();"><br/> param1:<input type="text" name="text1" value=""><br/> param2:<input type="text" name="text2" value=""><br/> 子画面からのparam=<div id="res"></div> </body> </html>
子ウィンドウ
<html> <script language="Javascript"> <!-- var obj = window.dialogArguments; document.write("受け取ったパラメータ→text1=" + obj.text1 + " text2=" + obj.text2); function btn_click() { window.returnValue=document.all.text1.value; window.close(); } --> </script> <body> <input type="button" value="親画面にセット" onclick="btn_click()"> <input type="text" name="text1" value=""> </body> </html>