2012-02-20 108 views
3

我对js生成的“表单”有一个奇怪的问题。该代码是这样的:target =“_ blank”弹出一个窗口,而不是打开一个新标签页

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。

+0

是否有任何理由希望它提交并在新选项卡中打开表单? – 2012-02-20 11:09:06

回答

2

围绕你的应用发布表单的其他地方,或者他们只是链接?

打开新选项卡或浏览器的新实例的行为是可配置的Internet Explorer 9(工具|互联网设定|标签|设置)

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

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

8

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

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

+0

那么gmail如何链接到下一个新TAB? – 2012-03-02 04:56:55

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或不去。最终,浏览器将决定发生什么,最有可能两种方法都会以相同的结果结束。

相关问题