Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在新选项卡(而不是新窗口)中打开链接?_Javascript_Html - Fatal编程技术网

Javascript 如何在新选项卡(而不是新窗口)中打开链接?

Javascript 如何在新选项卡(而不是新窗口)中打开链接?,javascript,html,Javascript,Html,我有一个“打开”按钮,用于“计算”应在新选项卡中打开的链接。 我尝试使用: window.open(url, '_blank'); 但这打开了一扇新的窗户 我还尝试了以下方法: <form id="oform" name="oform" action="" method="post" target="_blank"> </form> ... document.getElementById("oform").action = url; document.getElem

我有一个“打开”按钮,用于“计算”应在新选项卡中打开的链接。 我尝试使用:

window.open(url, '_blank');
但这打开了一扇新的窗户

我还尝试了以下方法:

<form id="oform" name="oform" action="" method="post" target="_blank">
</form>

...

document.getElementById("oform").action = url;
document.getElementById("oform").submit();

...
document.getElementById(“oform”).action=url;
document.getElementById(“oform”).submit();
仍然会打开一个新窗口,而不是一个新选项卡

当将simple
target='blank'
一起使用时,链接将在新选项卡中打开


有解决方案吗?

更新[2019]当前,当您将目标设置为
\u blank
时,大多数浏览器都会在新选项卡中打开。弹出窗口的时代早已过去。我们现在可以使用:

 <a href="some url" target="_blank">content of the anchor</a>
更新[2016]:正如其中一条评论所指出的,这种方法从未被纳入CSS3规范。这不应该被使用。然而,可以看出,大多数现代浏览器都会在新选项卡中打开
target=''u blank'
链接,除非随后立即尝试调整新选项卡的大小。但是,规范中似乎没有强制这种行为的机制


[2011]有关在受良好支持的新选项卡中强制打开的方法,请尝试以下操作:

<a href="some url" target="_newtab">content of the anchor</a>



否则,请使用此方法立即调整窗口大小,以确保弹出窗口拦截器不会杀死您的弹出窗口

除了前面提到的CSS3 target新选项@anirudh4444之外,您不能,而且最重要的是,您可能不应该这样做。您正试图控制用户的体验,而这很可能是由用户决定的。

以下功能在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>

函数buildAndGo(){
var aEl=document.getElementById('missingLink');
aEl.href=“#”+结果体计算();
var e=document.createEvent('MouseEvents');
e、 initEvent('click',true,true);
aEl.调度事件(e);
}
...
做吧
从以下来源工作,以尝试使IE版本正常工作: ,

表单的target=“\u blank”(包括前导下划线),而简单链接的target='blank'没有前导下划线。“_blank”是指定特定操作的保留字,但“blank”是特定(可能是新)窗口的名称。这就是为什么你会得到不同的结果。两者都是弹出窗口,但类型不同


每个用户都可以最终控制弹出窗口是打开新窗口还是打开新选项卡。您对此无能为力。

我可以使用“表单”元素解决此问题

函数openNewTab(链接){
变量frm=$('')
$(“正文”)。附加(frm);
frm.submit().remove();
}
有关完整的实施和详细信息,请访问我的帖子


或者,如果链接为“是”,则仅使用target标记可以查看此链接

但是如果是按钮,请尝试使用onclick功能,而不是仅使用\u blank

改为使用window.open(url,target)函数-它接受一个url和一个目标窗口名,其行为与链接上的target=“something”属性相同……如下所示

button(type="button", onclick="window.open('auth/google', '_blank');")

这应该行得通。

您可以使用以下任何一种,我在6种不同的浏览器中对它们进行了测试。(Google Chrome、Mozilla Firefox、Microsoft Internet Explorer、Opera、K-meleon*和Seamonkey。)

  • 它们的工作原理完全相同,选择完全取决于偏好


    *K-meleon,由于某种原因,当我点击链接时,我刚刚打开了我所在的页面。

    在Chrome中,一个
    在提交时会在一个新选项卡中打开,因此它取决于浏览器。我使用Chrome,但它会在新窗口而不是新选项卡中打开。我不知道如何使用它it@Erik这些浏览器开始支持这一点还需要一段时间。现在,你所能做的就是更改firefox中的about:config,以强制执行该行为。但是一些网站是如何做到这一点的呢?正如我在主消息中所说,这应该在firefox中起作用,当使用它时,它就像一个符咒,链接会在一个新的选项卡中打开。我知道一些网站中,单击“登录”按钮会打开一个新的选项卡,这是否正确?许多浏览器会阻止弹出窗口。我想在新标签页中打开链接,这样它就不会被阻止。我不确定这是否会阻止它被阻止。还有一些弹出窗口拦截器也可以阻止新标签的生成。您的最佳选择(考虑到用户体验)是在不尝试操纵物理浏览器窗口/选项卡集合的情况下实现灯箱/模式效果。那只是我的两分钱。如果你担心你的窗户被“堵住”,别担心。如果用户单击普通链接,浏览器将不会阻止该窗口。如果您使用Javascript打开此新链接,则可能会遇到问题。虽然此链接可能会回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则只有链接的答案可能会无效。第一个链接已断开
    窗口。打开(url,“\u blank”)
    正是OP所说的不起作用的代码。请参阅。尽管它们可能都能工作,但建议使用
    \u blank
    。在您第一次单击此类链接时,它们可能都能工作。但是当你第二次点击这样的链接时,它可能会打开一个新的标签,或者它可能会在上次使用的同一个标签中打开这个URL。只有
    target=“\u blank”
    被定义为始终使用新选项卡(或窗口,如果您的浏览器是这样配置的)。
    function openNewTab(link) {
         var frm = $('<form   method="get" action="' + link + '" target="_blank"></form>')
         $("body").append(frm);
         frm.submit().remove();
    }
    
    button(type="button", onclick="window.open('auth/google', '_blank');")