输入按钮target="_blank"不能在新窗口/选项卡中加载链接。

25

我有一个带有输入按钮的HTML文件。 这只是一个示例按钮,但它包含了所有必要的代码信息:

<input type="button" onClick="parent.location='http://www.facebook.com/'" value="facebook" target="_blank">

由于某些原因,它无法在新窗口/标签中加载。

14个回答

54

使用 formtarget="_blank" 对我起作用

<input type="button" onClick="parent.location='http://www.facebook.com/'" value="facebook" formtarget="_blank">

浏览器兼容性: 来自于caniuse.com
IE: 10+ | Edge: 12+ | Firefox: 4+ | Chrome: 15+ | Safari/iOS: 5.1+ | Android: 4+


3
请确保告诉人们这个HTML5标签:http://www.w3schools.com/tags/att_button_formtarget.asp - Davis
2
不幸的是,提供的链接说明了“formtarget”属性仅用于类型为“submit”的按钮。这对我没有用。 - Gianluca Greco

22

您需要这样做...

<a type="button" href="http://www.facebook.com/" value="facebook" target="_blank" class="button"></a>

如果您希望它看起来像按钮,可以添加基本的 CSS ... 就像这样

    .button {
    width:100px;
    height:50px;
    -moz-box-shadow:inset 0 1px 0 0 #fff;
    -webkit-box-shadow:inset 0 1px 0 0 #fff;
    box-shadow:inset 0 1px 0 0 #fff;
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #d1d1d1) );
    background:-moz-linear-gradient( center top, #ffffff 5%, #d1d1d1 100% );
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#d1d1d1');
    background-color:#fff;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #dcdcdc;
    display:inline-block;
    color:#777;
    font-family:Helvetica;
    font-size:15px;
    font-weight:700;
    padding:6px 24px;
    text-decoration:none;
    text-shadow:1px 1px 0 #fff
}



  .button:hover {
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #d1d1d1), color-stop(1, #ffffff) );
    background:-moz-linear-gradient( center top, #d1d1d1 5%, #ffffff 100% );
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#ffffff');
    background-color:#d1d1d1
}
.button:active {
    position:relative;
    top:1px
}

目标仅适用于href标签。


我已经尝试过了,但它看起来不像一个按钮?!http://jsfiddle.net/6v4q2/ - Teemu Laine
这是一个示例,它可以正常工作。您需要添加效果以实现推动效果,我可以在10分钟内提供两个 ;) - Jorge Y. C. Rodriguez
啊,CSS中按钮值前面的那个点。现在它可以工作了 :) - Teemu Laine
我编辑它,使其在悬停和按下时更像按钮。 - Jorge Y. C. Rodriguez
1
@jycr753 formtarget="_blank" - mans
显示剩余3条评论

17

只需使用 JavaScript 的window.open函数,将第二个参数设置为 "_blank"

<button onClick="javascript:window.open('http://www.facebook.com', '_blank');">facebook</button>

1
这实际上应该被接受为正确答案。 - Engr Atiq

16

正确答案:

<form role="search" method="get" action="" target="_blank"></form>

在所有主要的浏览器中支持 :)


2
在IE7+、Chrome、FF和Safari中进行过测试。 - Davis
有时候,有人希望某些按钮(超链接)在新窗口中打开,而另一些则不需要。这对于所有超链接按钮来说是全盘接受的,对吗? - FloverOwe

6
面临类似问题时,我是这样解决的:
<a href="http://www.google.com/" target="_top" style="text-decoration:none"><button id="back">Back</button></a>

如果您需要的话,请将_top更改为_blank


谢谢,我在使用wicket时遇到了相同的问题,无法为href获取正确的类(如按钮),而这个答案解决了我的问题。 - Thomas Sofras

4
请尝试这个,它对我有效:

点击事件:window.open('http://www.facebook.com/','facebook')"

<button type="button" class="btn btn-default btn-social" onClick="window.open('http://www.facebook.com/','facebook')">
          <i class="fa fa-facebook" aria-hidden="true"></i>
</button>

3

formtarget属性仅用于type="submit"的按钮。

这是来自参考文献的内容。

以下是使用JavaScript的答案:

<input type="button" onClick="openNewTab()" value="facebook">

<script type="text/javascript">
    function openNewTab() {
        window.open("http://www.facebook.com/");
    }
</script>

3
一个 input 元素不支持 target 属性。 target 属性是用于 a 标签的,应该在那里使用。

3

targetinput元素上无效。

但是,在这种情况下,由JavaScript完成重定向,因此您的脚本可以打开一个新窗口。


2
<form target="_blank">
    <button class="btn btn-primary" formaction="http://www.google.com">Google</button>
</form>

这个答案出现在低质量审核队列中,可能是因为您没有提供任何关于代码的解释。如果这段代码回答了问题,请考虑在您的答案中添加一些解释代码的文字。这样,您更有可能获得更多的赞同 - 并帮助提问者学习新知识。 - lmo

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