1

asp.netアプリケーションがあり、同時に 2 つのセッションを実行する必要があります。

私はいくつかのページでも使用windows.openしていますが、ここから問題が始まります。セッション 2 のいずれかのページから JavaScriptを呼び出したときに 2 つのセッションが実行されている場合windows.open、セッション 1 のセッション ID で新しいウィンドウが開きます。

また、次のコードを使用して、別の IE インスタンスで 2 番目のセッションが作成されることも付け加えておきます。

var myshell = new ActiveXObject("Shell.Application");

if (parseFloat(ieVersion) >= 8) {
    myshell.ShellExecute("iexplore.exe", "-noframemerging " + url, "", "open", 1);
}
else {
    myshell.ShellExecute("iexplore.exe", url, "", "open", 1);
}
4

1 に答える 1

0

これがなぜなのかはわかっていますが、問題が見つかりました...

IE の 2 番目のインスタンスから開いた新しいウィンドウが正しく読み込まれず、IE の最初のインスタンスにレンダリングされていました。

ウィンドウを開く JavaScript は次のとおりです。 window.open(the_url, "DisplayWindow", option);

これは、IE の最初のインスタンスでは問題なく動作し、Windows 7 および IE 9 を実行している一部のコンピューターでは、IE の 2 番目のインスタンスでウィンドウを開くことができますが、同じセットアップを実行している他のコンピューターでは、これは機能しません!

解決策は、単にウィンドウ名を削除することです。
window.open(the_url, "", オプション);

ウィンドウ名にスペースが含まれていると、IE9 でウィンドウが開かないという同様の問題も見つかりました。同様の問題がある場合は、ウィンドウ名を変更するか削除してみてください。

于 2012-07-05T01:59:22.067 に答える