下記の2つのファイル(error.htm,_sub.htm)を作成し、error.htm をIEで表示すると、IEからは、”サーバーが例外を返しました”とのエラーが発生し、最悪の場合、IEが落ちます。
このようなエラーについて、何か情報をお持ちの方がおられましたら、教えてください。
確認済環境:
Windows2000Server + IE6.0
Windows2000Professional + IE5.0
WindowsNTServer 4.0 + IE6.0
Windows98 + IE5.5
以上、よろしくお願いいたします。

---(error.htm)---
<HTML><HEAD></HEAD>
<BODY onLoad="window.open('_sub.htm')">
<form name="testForm">
<select name="sel1">
<option selected>A</option>
<option>B</option>
<option>C</option>
</select>
'D' should be added by JavaScript in the '_sub.htm'.<br>
However, the error ocurred and it was not performed!
</form>
</BODY></HTML>

---(_sub.htm)---
<HTML><HEAD></HEAD>
<BODY onLoad="AddOption()">
Test Sub Window
</BODY></HTML>
<SCRIPT>
function AddOption(){
sel = opener.document.testForm.sel1;
sel.options[sel.options.length] = new Option("D", "V");
}
</SCRIPT>

このQ&Aに関連する最新のQ&A

A 回答 (1件)

確か、セキュリティの問題だったか何かで、外部から直接オブジェクトを変更するような操作はできなかったのではないかと思います。


ですので、対応方法としては、error.htmに自分のOptionオブジェクトに新たに値を追加する関数を作り、_sub.htmはその関数を呼ぶようにすれば対応できると思います。
そういう方法ではだめでしょうか?

以下、こんな感じで行けると思う例です。

----error.htm----
<HTML><HEAD></HEAD>
<SCRIPT>
function addOption(text,value){
sel = this.document.testForm.sel1;
sel.options[sel.options.length] = new Option(text,value);
}
</SCRIPT>
<BODY onLoad="window.open('_sub.htm')">
<form name="testForm">
<select name="sel1">
<option selected>A</option>
<option>B</option>
<option>C</option>
</select>
'D' should be added by JavaScript in the '_sub.htm'.<br>
However, the error ocurred and it was not performed!
</form>
</BODY></HTML>

----_sub.htm----
<HTML>
<HEAD></HEAD>
<SCRIPT>
function AddOption(){
opener.addOption("D","V");
}
</SCRIPT>
<BODY onLoad="AddOption()">
Test Sub Window
</BODY></HTML>

この回答への補足

ご回答ありがとうございました。
おかげさまで、無事動作させることができました。

ありがとうございました。

(「御礼を言う」で入れた文章は、どこに行ってしまうの?)

補足日時:2002/04/04 16:28
    • good
    • 0
この回答へのお礼

と思ったのですが、お礼がしっかりといえていなかったようです。
(というか、確認画面でできたと思っていた。)

ありがとうございました。
おかげで、無事無事動作させることができました。
また、子ウインドウで親ウインドウのフォーム内容を、typeとnameによって、すべて書き込むようなものを作成していたため、以下のようにして使用しました。これも大丈夫でした。
ありがとうございました。

---(親ウインドウ)---
function addOption(sel,text,value){
sel.options[sel.options.length] = new Option(text,value);
}

---(子ウインドウ)---
function AddOption(){
opener.addOption(opener.testForm.sel1,"D","V");
}

お礼日時:2002/04/04 16:34

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報