我怎样才能打开新标签(而不是新窗口)的链接?
我有一个“打开”button,用于“计算”应该在新选项卡中打开的链接。 我尝试使用:
window.open(url, '_blank');
但是,这打开了一个新的窗口。
我也尝试了以下方法:
<form id="oform" name="oform" action="" method="post" target="_blank"> </form> ... document.getElementById("oform").action = url; document.getElementById("oform").submit();
不过,打开一个新窗口,而不是一个新的标签。
当使用简单的<a href...>
with target='blank'
,链接将在新选项卡中打开。
有解决scheme吗?
CSS3支持“在新标签中打开”,属性target-new
target-new: window | tab | none;
更新[2016]:这个方法从来没有把它变成CSS3规范,正如注释之一所示。 这不应该使用。 然而,可以看出,大多数现代浏览器无论如何都会在新选项卡中打开target='_blank'
链接,除非尝试立即调整新选项卡的大小。 然而,在规范中似乎没有强制这种行为的机制。
[2011]对于在新标签中强制打开的方法,请尝试以下操作:
<a href="some url" target="_newtab">content of the anchor</a>
否则,请使用此方法立即调整窗口大小,以确保popup式窗口拦截器不会中止popup窗口
除了提到的CSS3 target-new选项@ anirudh4444之外,你不能也不可能这么做。 您正试图控制用户的体验,而这应该最有可能留给用户。
你可以使用以下任何一种,我在6种不同的浏览器中testing了它们。 (Google Chrome,Mozilla Firefox,Microsoft Internet Explorer,Opera,K-meleon *和Seamonkey。)
-
<a href="blaah" target="_blank">Blaah</a>
-
<a href="blaah" target="_tab">Blaah</a>
-
<a href="blaah" target="_new">Blaah</a>
他们的工作完全一样,select完全取决于偏好。
* K-meleon,由于某种原因刚打开了我点击链接时所在的页面。
我能够使用“表单”元素来解决这个问题。
function openNewTab(link) { var frm = $('<form method="get" action="' + link + '" target="_blank"></form>') $("body").append(frm); frm.submit().remove(); }
完整的实现和细节请访问我的文章http://mukesh.in/force-open-new-tab-in-browsers-instead-of-windows/
或者看到这个JSFiddle
Chrome中的以下作品:
<script> function buildAndGo() { var aEl = document.getElementById('missingLink'); aEl.href = "#" + resultOfSomeCalculation(); var e = document.createEvent('MouseEvents'); e.initEvent( 'click', true, true ); aEl.dispatchEvent(e); } </script> ... <button onclick="buildAndGo()">Do it</button> <a href="#" id="missingLink" target="_blank" style="visibility: hidden;"></a>
从以下来源工作,尝试获得IE版本的工作: Selenium BrowserBot , YUI用户操作
你的表单有target =“_ blank”(包括一个前导下划线),而你的简单链接的目标='blank'没有前导下划线。 “_blank”是指定特定动作的保留字,但“blank”是特定窗口(可能是新窗口)的名称。 这就是为什么你得到不同的结果。 这两个都是popup窗口,但不同的types。
每个用户对popup窗口是否应打开一个新窗口或新选项卡有最终的控制权。 没有什么可以做的。
在链接的情况下是只使用目标标签将工作。
但是在button的情况下尝试使用onclick函数而不是仅使用_blank
使用window.open(url,target)函数 – 它需要一个URL和一个目标窗口名称,它的行为与链接上的target =“something”属性相同。
button(type="button", onclick="window.open('auth/google', '_blank');")
这应该工作。