2

この問題は Windows2012R2 でのみ発生します。Windows8.1 では問題ありません。


スタックオーバーフローで質問するのはこれが初めてです。ここで失礼なことをしたら、お許しください.:)</p>

a.html、b.html、test.html の 3 つの html ファイルがあります。test.html には送信ボタンのある from があります。ボタンをクリックすると、まず「goOpeEvtURL」という名前の js 関数が実行されます。この関数では、ウィンドウ (a.html) が開きます。test.html の形式には、値が「b.html」である属性名 action と、値が「a.html」である「trget」という名前の属性があります。

test.html を開いて [Click] ボタンをクリックすると、「Result of b!!」を示す新しいウィンドウが 1 つだけポップアップします。

IE10 と firefox で試してみたところ、結果は「bの結果!!」です。しかし、IE11 でこの test.html を実行して [クリック] ボタンをクリックすると、2 つのウィンドウがポップアップします。1つは「aの結果!!」を示しました。もう1つは「bの結果!!」を示しました。

IE11で1つのウィンドウ(「bの結果!!」が表示された)だけがポップアップすることを願っています。どうすればそれをなめることができますか?T_T


a.html → フォームの目標値

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7">
<TITLE>a.html</TITLE>
<SCRIPT Language="JavaScript">
</SCRIPT>
</HEAD>
<BODY class="body_base">
<STRONG>Result of a!!</STRONG><BR>
<HTML>

b.html → フォームのアクション値

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7">
<TITLE>b.html</TITLE>
<SCRIPT Language="JavaScript">
</SCRIPT>
</HEAD>
<BODY class="body_base">
<STRONG>Result of b!!</STRONG><BR>

test.html → フォームを含む html。

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7">
<TITLE>test</TITLE>
<SCRIPT Language="JavaScript">
function goOpeEvtURL(kind)
{

    SubmitFlag = true;
    OTHERWIN = window.open("a.html", "aaaaa","width=" + 300 + ",height="
        + 400 +         "menubar=no,toolbar=no,status=yes,scrollbars=yes,,resizable=yes,,top=200,left=200");
    return;
}

</SCRIPT>
</HEAD>
<BODY class="body_base">
<FORM METHOD="POST" ACTION="b.html" 
NAME="NODESECLET"  onReset='return false;' onSubmit="return SubmitFlag;" TARGET="aaaaa">
<INPUT TYPE="submit" NAME="Do_Corrective" VALUE="Click" onClick="goOpeEvtURL();return     true;" class="button_trevent">
<FORM>
<HTML>
4

2 に答える 2

5

それはieのバグです。この記事を見てください。 http://support.microsoft.com/kb/2909974

概要

ビルトイン アドミニストレータ Internet Explorer 11 で使用し、window.open メソッドなどの名前の付いた新しいウィンドウを開くと、ウィンドウ名が認識されません。そのため、以下の現象が発生します。
window.open メソッドに window という名前を指定すると、既に開いているウィンドウではなく、URL が新しいタブまたは新しいウィンドウに表示されます
リンクまたはフォームの target 属性に指定すると、そのウィンドウではなく window という名前の既に開いている場合は、新しいタブまたは新しいウィンドウに URL が表示されます

回避策1. ビルトイン
の管理者以外の新しいユーザー アカウントを作成します
管理者アカウント】

于 2013-11-12T09:18:13.537 に答える
0

デフォルトの送信動作を抑制し、新しいウィンドウを 1 つだけ開く場合は、OnSubmit メソッドがfalse を返すようにします。

target=a.html属性は「a.html」という名前の新しいウィンドウを開くことに注意してください。「a.html」に移動する新しいウィンドウは開きません。

于 2013-10-11T19:25:10.500 に答える