- PR -

Windows XP SP2での別ウィンドウ表示処理について

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2005-12-21 11:12
sinhと申します。

現在、ファイル内容の別ウィンドウ表示処理を作成しています。
処理としてJavaScriptにて
-----------------------------------------------------
window.open("about:blank","newWin","");
document.forms[0].target= "newWin";
document.forms[0].action = "/sample/DownloadServlet?index="+index;
document.forms[0].submit();
-----------------------------------------------------
で別ウィンドウ表示して、サーバ側のJavaのDownloadServletのなかで、ファイル内容を
response.getOutputStream()に出力しています。

上記の処理で、Windows XP SP2でIE6 sp2でイントラネットゾーンとして
処理を行った場合は、動作するのですが、インターネットゾーンの場合は
「セキュリティ保護のため、このサイトによる、このコンピュータへの
ファイルのダウンロードがInternet Explorerによりブロックされました。
オプションを表示するには、ここをクリックしてください。」
が表示され、右クリックをして、"ファイルのダウンロード"を選択しても
処理が行われません。

そのため、少し調べていたら、JavaScript側の処理を
------------------------------------------------------------------
window.open("/sample/DownloadServlet?index="+index,"newWin","");
------------------------------------------------------------------
とするとインターネットゾーンでも表示されることが
わかったのですが、上記2つのJavaScriptにどのような違いがあるのでしょうか?

よろしくお願いします。


未記入
大ベテラン
会議室デビュー日: 2005/03/12
投稿数: 148
投稿日時: 2005-12-22 08:04
実際に何が起きているか動作確認していないので正確なことはわかりませんが、
違いについて考えてみました。

------------------------------------------------------------------
window.open("/sample/DownloadServlet?index="+index,"newWin","");
------------------------------------------------------------------
このwindow.openは元ウィンドウで実行するJavaScriptですが
別ウィンドウnewWin自身がこのURLを開くのはJavaScriptではありませんね。

-----------------------------------------------------
window.open("about:blank","newWin","");
document.forms[0].target= "newWin";
document.forms[0].action = "/sample/DownloadServlet?index="+index;
document.forms[0].submit();
-----------------------------------------------------
これは元ウィンドウで実行するJavaScriptですね。
別ウィンドウnewWinをあとから表示しなおしても
別ウィンドウnewWinは"about:blank"を表示(ダウンロード?)するだけ。
再び元ウィンドウでこのJavaScriptを実行しなおさないといけない。

これは推測ですよ。

そう考えると
最初は
window.open("about:blank","newWin","");
がブロックによって失敗し
document.forms[0].submit();
も失敗?中断?

ブロック解除で
window.open("about:blank","newWin","");
が実行されるが
document.forms[0].submit();
は継続されないってことか?
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2005-12-26 17:41
未記入さん返信ありがとうございます。
--引用--------------------------------------
最初は
window.open("about:blank","newWin","");
がブロックによって失敗し
document.forms[0].submit();
も失敗?中断?

ブロック解除で
window.open("about:blank","newWin","");
が実行されるが
document.forms[0].submit();
は継続されないってことか?
--------------------------------------------
確かにそう考えると、実行されないですね。

XP sp2のセキュリティ保護でこんなところまで
影響があるとは思いませんでした。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)