2

这个问题只在Windows2012R2出现,在Windows8.1下是可以的。


这是我第一次在 stackoverflow 上提问。如果我在这里做了粗鲁的事情,请原谅我。:)</p>

共有三个html文件.a.html、b.html和test.html。在test.html中,有一个from里面有一个提交按钮。如果你点击这个按钮,它会首先执行一个名为“goOpeEvtURL”的js函数。在这个函数中,它会打开一个窗口(a.html)。test.html的形式,有一个属性名action,其值为“b.html”,还有一个名为“trget”的属性,其值为“a.html”。

如果我们打开 test.html 并单击 [单击] 按钮,它将只弹出一个新窗口,显示“b 的结果!!”

我在 IE10 和 firefox 中试过,结果是“b 的结果!!” 但是,当我在 IE11 中运行这个 test.html 并单击 [单击] 按钮时,它会弹出两个窗口!一个显示“结果!!” 另一个显示“b的结果!!”

我希望它只会在 IE11 中弹出一个窗口(“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 显示在新选项卡或新窗口
中已打开,URL 显示在新选项卡或新窗口中

解决方法
1. 创建内置管理员以外的新用户帐户
2. 启用策略:[用户帐户控制:使用内置管理员批准模式管理员帐号]

于 2013-11-12T09:18:13.537 回答
0

如果您希望抑制默认提交行为并且只打开一个新窗口,您希望OnSubmit 方法返回 false 。

请记住,您的target=a.html属性会打开一个名为“a.html”的新窗口,它不会打开一个导航到“a.html”的新窗口。

于 2013-10-11T19:25:10.500 回答