- 締切済み
htmlのobjectタグで埋め込んだページから値を戻す方法(IEの場合)
オブジェクト埋め込みで別のWebページを埋め込んでいます。 その埋め込まれたページのフォームに入力された値を、埋め込み元のフォームに値を戻す処理です。 IE以外(Firefox,Opera,Chrome,Safari)は正常に動きました。 これをIE(IE8)でも正常に動く様にしたいのですが、IEの場合の記述方法を教えていただけないでしょうか。宜しくお願いします。 因みに、これはインラインフレームで処理していたもを、objectタグに書き換える作業です。 ですのでインラインフレームなら可能という回答はなしでお願いします。 ●オブジェクトを埋め込んでいるページのhtml <form method="POST" name="formA"> <input type="text" name="fld1" size="10"> </form> <p> <object ID="bojInline" type="text/html" data="http://hogehoge/oTest.html" width="400" height="300"> <p>objectに対応していないブラウザです</p> </object> </p> ●埋め込まれるhtml(http://hogehoge/oTest.html) <script language="JavaScript"> <!--// function fRtn() { parent.document.formA.fld1.value = document.formB.fldB1.value; <<<ここの記述がIEではエラー } //--> </script> </head> <form method="POST" name="formB"> <input type="text" name="fldB1" size="10" value="初期値"></td> <input type="button" name="btn1" value="値を戻す" onClick="JavaScript:fRtn()"> </form>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yyr446
- ベストアンサー率65% (870/1330)
オブジェクトを埋め込んでいるページのhtmlのjavascriptで windowオブジェクトに名前を付けます。 <script>window.name="hoge"</script> 埋め込まれるhtmlのjavascriptは、 hoge.document.formA.fld1.value = document.formB.fldB1.value; としてだめですか?
補足
回答ありがとう御座います。 その方法も試していました。 「宣言されていません」とエラーになってしまいます。 window.openerも試してみましたが駄目でした。 objectタグのパラメータのtype='text/html'をclassid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13"に書き換えてみても同じでした。 IEはobujectタグで埋め込んだWebページから、埋め込み元へのDOM階層が切れているのじゃないかと思い始めています。 XHTML1.1でiframe要素が廃止になっていますので、object要素に書き換えはじめたのですが、IEのみ実装の考え方が違うようなので時期尚早だったのかもしれないと思い始めました。 各ブラウザもiframe要素への対応をすぐに止めるとは思えないので、iframe要素をobject要素に書き換えるのは中止しようと思い始めています。