target =“_ blank”弹出窗口而不是打开新选项卡

时间:2012-02-20 11:05:36

标签: javascript jquery html

我对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。

3 个答案:

答案 0 :(得分:8)

target="_blank"用于在新窗口中打开目标。大多数现代浏览器打开新标签的事实并非由任何标准定义,通常由用户通过设置进行控制。

如果您将浏览器设置为在选项卡而不是在窗口中打开新链接,并且在这种情况下不起作用,则可能发现了错误。

答案 1 :(得分:2)

您的应用发布表单周围的其他地方是否只是链接?

可以为Internet Explorer 9配置打开新选项卡或浏览器新实例的行为(工具| Internet设置|选项卡|设置)

在Firefox中,这些选项位于工具|选项|标签

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

答案 2 :(得分: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或不。最后,浏览器将决定发生什么,并且最有可能两种方法都会得到相同的结果。