"target="_blank"弹出窗口而非在新标签页中打开"

3
我遇到了一个关于js生成的“表单”的奇怪问题。代码大致如下:
var form_ = 
    '<form method="get" action="/foo/bar/" target="_blank">' +
        '<input type="hidden" name="a" value="' + a + '"/>' +
        '<input type="hidden" name="b" value="' + b +'"/>' +
        '<input type="hidden" name="c" value="' + c + '"/>' +
    '</form>';

$(form_).appendTo('body').submit().remove();

a 是一个字符串变量,它包含一个日期(dd/mm/yyyy),而 b,c 是数字。

我在应用程序的许多地方使用这段代码片段,在同一 HTML 中有一个非常相似的代码可以打开一个新的标签页,但是这个特定的代码尝试弹出一个窗口。

我已经尝试使用 Firefox、Chrome 和 IE。


你想让它提交并在新标签页中打开表单的原因是什么? - Aram Kocharyan
3个回答

8

target="_blank"用于在新窗口中打开链接。大多数现代浏览器会在新标签页中打开链接,这并没有被任何标准定义,并且通常由用户通过设置来控制。

如果您的浏览器设置为在标签页中打开新链接,但在此情况下无法正常工作,则可能遇到了错误。


那么 Gmail 如何创建到下一个新标签页的链接? - Sam Arul Raj T

2

您的应用程序中的其他位置是否发布表单,还是仅仅是链接?

Internet Explorer 9 中打开新标签页或浏览器实例的行为是可配置的(工具|InternetSettings|选项卡|设置)。

在 Firefox 中,这些选项在工具|选项|选项卡中。

Chrome 似乎没有此设置,但您可以通过右键单击链接选择新窗口或新标签页。


0

从这里给出的答案:http://www.plus2net.com/html_tutorial/submit-new.php

<form name="f1" type="post" action="test5.html">
<input type="submit" value="Open default action file test5.html" onclick="this.form.target='_blank';return true;" />
</form>

编辑:这在Chrome中对我有效,但我看不出为什么这应该通过JS或不通过JS生成任何不同的行为。最终浏览器将决定发生什么,很可能两种方法最终都会得到相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接