4

Windows 7 で IE8 を使用しています。いくつかのスレッドを参照し、IE8 で window.open を使用して新しいウィンドウをポップアップすると、JavaScript の window.open が null 値を返すことを理解しました。

管理者として IE を実行するか、保護モードを無効にすると、window.open が予期したオブジェクトを返すことがわかります。

上記のオプション以外の解決策を探しています。このような小さな機能 (ポップアップを開く) については、管理者として IE を実行したり、保護モードを無効にしたりするよう顧客に依頼することはできません。

回避策がある場合は、お知らせください。とても助かります。

主に、ユーザーがリンクを複数回クリックしたときにウィンドウが 1 つだけ開かれるようにし、既に開いているウィンドウにフォーカスを移したいと考えています。これを実現するには、window.open からオブジェクトを取得して、ウィンドウが既に開いているかどうかを確認し、既に開いているウィンドウにフォーカスを移す必要があります。それ以外の場合は、新しいウィンドウを開きます。

4

2 に答える 2

6

IE10 の場合、window.open は、このゾーンの [インターネット オプション] -> [セキュリティ] -> [セキュリティ レベル] で [保護モードを有効にする] がチェックされている場合、NULL 参照オブジェクトを返します。ZONE は異なります。つまり、私の場合はイントラネットからポップアップを開くローカル ファイルです。

window.open は、yoursite.com がポップアップ ウィンドウ、つまり Internet->Internet で someothersite.com を開いたときに [保護モードを有効にする] がオンになっていても、参照オブジェクトを返します。

于 2014-05-28T11:28:50.127 に答える
-1

window.openメソッドの代替または代替としてwindow.showModalDialogを使用できます。

window.openよりも安全です。ユーザーが親ページをクリックすることはできません。

使用例:

var myFeatures = "dialogWidth:1060px;dialogHeight:550px;resizable:yes";

window.showModalDialog(url,window,myFeatures);
       //Here window is an object, no need to assign or declare.

詳細な説明が必要な場合は、こちらを参照してください。//5番目の質問。

于 2012-07-05T07:54:50.620 に答える