IE4でopen("")後submitすると2枚ウィンドウが開く

[上に] [前に] [次に]
もう疲れた 2000/03/16(木) 20:45:45
 IE4 SP1;263 6;2735; でだけ発生するのですが、
document.form1.target = targetname;
open("", targetname);
document.form1.submit();
とすると、空白ウィンドウと出力結果が返されたウィンドウの2枚
が表示されてしまいます。

 調べてみた結果、window.nameが両方とも同じなのでターゲット
ウィンドウの検索がおかしいようです。
どなたか同様の現象を体験した方はいませんでしょうか?

 IEのバグだとは思っているのですが、ここを検索してもヒット
せず、MSDNにもそれらしい情報が見当たりません。

 どんなささいな情報でも良いので心当たりのある方のアドバイス
がいただけると幸いに思います。

茶雄 2000/03/17(金) 02:58:08
document.form1.target = targetname;
を削除して、
<form name=form1 target=targetname>
にしては?

もう疲れた 2000/03/17(金) 09:10:52
 その方法も試してはみたのですが、現象は変わりませんでした。
 以下の障害がこの現象のことを言っているのではと思っているの
ですが、今一つ確信がもてないでいます。

文書番号: J047479
Internet Explorer の "Frame Spoof" 問題の修正プログラムをインストールすると、外部からフレームを解析することができなくなくなります。
これは、修正プログラムをインストールした結果、Frame コレクションからフレームごとの Window オブジェクトへのアクセスができなくなり、フレームに関する情報を取得することができなくなるためです。

フシギダネ 2000/03/17(金) 09:11:16
>open("", targetname);
この行、要らないように思うのですが。
document.form1.target = targetname;
document.form1.submit();

もう疲れた 2000/03/17(金) 18:28:23
 open()を呼びませんとウィンドウを閉じるときにconfirm()が
呼ばれてしまいますのでその対策のためにopen("")を呼んでいます。

 不思議なのはローカルにファイルを置いてfile:で呼ぶと再現せず、
IIS管理下のディレクトリに置いてhttp:で呼ぶと再現するのです。

 以下に現象を再現可能にしたソースを付記します。

<HTML>
<HEAD>
<SCRIPT LANGUAGE=JavaScript>
<!--
function doChk() {
document.form1.target = "ok";
open("", "ok");
document.form1.submit();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM  name="form1" action="aa2.htm" method="POST" target="ok">
<input type="button" name="chk" value="Check" onClick="doChk()">
</form>
</BODY>
</HTML>

無責任官庁 2000/03/18(土) 22:19:01
うちはIE5なんでアレですけども…
(しかも、その現象をこの目で見たワケじゃない)
ちょっと面倒かもしれませんが、以下のようにするのは難しいですか?

<HTML><HEAD>
<SCRIPT LANGUAGE=JavaScript>
<!--
function doChk() {
okwin = open("", "ok");
okwin.document.open();
okwin.document.write("<FORM name=test action='aa2.htm' method=post>\n");
okwin.document.write("<input type=text name=a value='aaa'>\n");
okwin.document.write("</FORM>");
okwin.document.close();
okwin.document.test.submit();
return false;
}
//-->
</SCRIPT>
</HEAD><BODY>
<FORM name="form1">
<input type="button" name="chk" value="Check" onClick="return doChk();">
</form></BODY></HTML>

あとIEはインターネットオプションの“新しいプロセスで…”がオン
になってると、ウインドウ関連の繋ぎがちょっと怪しくなるっていう
現象は今までにいくつか見たことありますが。
参考までに。

もう疲れた 2000/03/21(火) 20:37:04
[[解決]]
> ちょっと面倒かもしれませんが、以下のようにするのは難しいですか?

 情報の提供ありがとうございます。残念ながら呼び出される側のページ
にはJSPのコードが含まれているためこの方法は使えませんが、この回避策
で正常に動作することを確認しました。

> あとIEはインターネットオプションの“新しいプロセスで…”がオン
> になってると、ウインドウ関連の繋ぎがちょっと怪しくなるっていう
> 現象は今までにいくつか見たことありますが。

 解決しました。このチェックをオフにすることでこの現象が回避できる
ことを確認しました。正常に動作する環境ではこのチェックの有無は関係
なかったため発見ができないでいました。

 たくさんの方々から有用なアドバイスを頂けた事に感謝します。

[上に] [前に] [次に]