0

このコードを実行しようとしています

String outputFile = "file:///C:/reports/1016.html";
Window.open(outputFile, "Test", "");
Window.open("http://www.bing.com/", "bing", "");

ご覧のとおり、outputFile は Web リンクではなく、ファイルです。Chrome/firefox はそれを開きたくないようで、about:blank ウィンドウを開き続けます。私は間違ったことをしたと思ったので、3行目に実際のWebアドレスを追加しました. ここで何が間違っていますか?Window.open() でファイルを開けませんか?

4

2 に答える 2

2

セキュリティ上の理由だと思います。

セキュリティを無効にして Chrome ブラウザを起動し、何が起こるかを確認してください。

chromium --disable-web-security

ローカル ファイルが表示されている場合は、セキュリティ上の理由から無効になっていることがわかります。(そして、あなたはそれに対して何もできません)。

Web デバッガーが警告を表示している可能性があります ( F12)

于 2013-08-09T22:07:26.737 に答える
0

Christian Kuetbachの回答に追加するには:

  1. ほとんどのブラウザーは、クリック イベントから直接来る場合を除いて、セキュリティ上の理由からブロックします。(現時点ではその主張を裏付けるリンクは見つかりませんが、試してみる価値はあります)

    ユーザーのクリックから Window.open を試行すると、機能するはずです。

  2. 同じ Web サイトでウィンドウを開くときは問題ないはずです (Same origin policy) https://developer.mozilla.org/en-US/docs/Web/API/window.openを参照してください

編集: #1 の場合: Firefoxおよび https://support.mozilla.org/en-US/kb/pop-blocker-settings-exceptions-troubleshooting?redirectlocale=en-US&redirectslug=Pop-upによってブロックされた「window.open」+ブロッカー 言います:

マウス クリックまたはキーを押した後にポップアップが表示されますか?

クリックやキーの押下などの特定のイベントは、ポップアップ ブロッカーがオンになっているかどうかに関係なく、ポップアップを生成できます。これは、Web サイトが機能するために必要なポップアップを Firefox がブロックしないようにするためです。

于 2013-08-10T20:46:42.877 に答える