JavaScript在新窗口中打开,而不是在选项卡中打开

JavaScript在新窗口中打开,而不是在选项卡中打开,javascript,firefox,Javascript,Firefox,我有一个选择框,可以在选中某个项目时调用窗口。打开(url)。默认情况下,Firefox将在新选项卡中打开页面。但是,我希望页面在新窗口中打开,而不是在新选项卡中打开 我怎样才能做到这一点呢?你不需要这样做。允许用户拥有他们想要的任何首选项 默认情况下,Firefox会这样做,因为在新窗口中打开页面很烦人,如果用户不希望这样做,则不应允许页面这样做。(如果您这样设置,Firefox确实允许您在新窗口中打开选项卡)。我可能错了,但据我所知,这是由用户的浏览器首选项控制的,我不相信这可以被覆盖。尝试

我有一个选择框,可以在选中某个项目时调用
窗口。打开(url)
。默认情况下,Firefox将在新选项卡中打开页面。但是,我希望页面在新窗口中打开,而不是在新选项卡中打开


我怎样才能做到这一点呢?

你不需要这样做。允许用户拥有他们想要的任何首选项


默认情况下,Firefox会这样做,因为在新窗口中打开页面很烦人,如果用户不希望这样做,则不应允许页面这样做。(如果您这样设置,Firefox确实允许您在新窗口中打开选项卡)。

我可能错了,但据我所知,这是由用户的浏览器首选项控制的,我不相信这可以被覆盖。

尝试:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");
我有一些代码按照你说的做,但是里面有很多参数。我认为这些是最低限度的,如果它不起作用,请告诉我,我会发布其余的。

指定窗口“功能”以打开
调用:

window.open(url, windowName, "height=200,width=200");
指定宽度/高度时,它将在新窗口而不是选项卡中打开


有关所有可能的功能,请参见。

您不需要使用高度,只要确保使用
\u blank
,如果没有高度,它将在新选项卡中打开

对于空窗口:

window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
对于特定URL:

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');

您可以尝试以下功能:


函数打开(url)
{
var popup=window.open(url,“_blank”,“宽度=200,高度=200”);
popup.location=URL;
}
要执行的HTML代码:


有趣的是,我发现如果您为window.open的第三个属性传入一个空的字符串(与空字符串或属性列表相反),它将在Chrome、Firefox和IE的新选项卡中打开。如果没有,行为会有所不同

这是我的新电话:

 window.open(url, windowName, '');

关键是参数:

如果您提供参数[Height=”“,Width=”“],则它将在新窗口中打开

如果未提供参数,则它将在新选项卡中打开

在Chrome和Firefox中测试。但再次发布以供参考

window.open()
如果在实际单击事件中没有打开,则不会在新选项卡中打开。在给定的示例中,url是在实际单击事件时打开的。如果用户在浏览器中具有适当的设置,则此操作将起作用

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>
链接
$(“a.link”)。在(“单击”,函数(){
window.open('www.yourdomain.com','u blank');
});
类似地,如果您试图在click函数中执行ajax调用,并希望打开一个成功窗口,请确保使用
async:false
选项集执行ajax调用。

尝试该方法

function popitup(url) {
       //alert(url);
       newwindow=window.open("http://www.zeeshanakhter.com","_blank","toolbar=yes,scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
       newwindow.moveTo(350,150);
   if (window.focus) 
          {
             newwindow.focus()
          }
   return false;
  }

我认为这不是html目标属性的问题,但您在firefox“选项”菜单下的“选项卡”选项卡中取消选中了“在新选项卡中打开nw窗口”选项。请检查并重试


我有同样的问题,但找到了一个相对简单的解决办法

在JavaScript中,我正在检查
window.opener=无效
确定窗口是否为弹出窗口。如果您使用一些类似的检测代码来确定您的站点所呈现的窗口是否为弹出窗口,那么当您想要使用新的windows JavaScript打开“新”窗口时,您可以轻松地“关闭它”

只要把它放在你的页面顶部,你就可以一直成为一个“新”窗口

然后通过使用一点javascript,您可以获取URL并重定向到它

重定向页面上的JavaScript:

window.open("MyRedirect.html?URL="+URL, "_blank");
 <script type="text/javascript">
        window.opener=null;

    function getSearchParameters() {
          var prmstr = window.location.search.substr(1);
          return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
    }

    function transformToAssocArray( prmstr ) {
        var params = {};
        var prmarr = prmstr.split("&");
        for ( var i = 0; i < prmarr.length; i++) {
            var tmparr = prmarr[i].split("=");
            params[tmparr[0]] = tmparr[1];
        }
        return params;
    }

    var params = getSearchParameters();
    window.location = params.URL;
    </script>

window.opener=null;
函数getSearchParameters(){
var prmstr=window.location.search.substr(1);
返回prmstr!=null&&prmstr!=“transformToAssocArray(prmstr):{};
}
功能转换到ASSOCARRAY(prmstr){
var params={};
var prmarr=prmstr.split(“&”);
对于(变量i=0;i
好的,在做了大量测试之后,我的儿子:

执行以下操作时:

     window.open('www.yourdomain.tld','_blank');
     window.open('www.yourdomain.tld','myWindow');
或者,无论您在目的地字段中输入什么,这都不会改变任何内容:新页面将在新选项卡中打开(因此取决于用户偏好)

如果希望在新的“真实”窗口中打开页面,则必须添加额外的参数。比如:

window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');
在测试之后,您使用的额外参数似乎并不重要:这不是您放置“this parameter”或“this other one”创建新“real window”的事实,而是存在新参数的事实

但有些东西很混乱,可能会解释很多错误的答案:

这:

这是:

 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win1 = window.open('myurl1', 'ID_WIN');
不会给出相同的结果

在第一种情况下,当您第一次打开一个没有
额外参数的页面时,它将在一个新的选项卡中打开。在这种情况下,由于您提供的名称,第二个呼叫也将在此选项卡中打开

在第二种情况下,由于第一次调用是使用
额外参数进行的,因此页面将在新的“真实窗口”中打开。在这种情况下,即使在没有额外参数的情况下进行第二次调用,它也将在这个新的“实窗口””中打开。。。但是相同的账单

这意味着第一次调用很重要,因为它决定了页面的放置位置

我刚刚用IE(11)和Chrome(54.0.2794.1金丝雀SyzyASan)试过这个:

。。。它在一个新窗口中打开

这意味着他说的没错,提供任何一个参数都会导致新窗口打开

--显然,它不必是一个合法的参数

(YMMV——正如我所说,我只在两个地方进行了测试……下一次升级可能会以任何方式使结果无效)

 win1 = window.open('myurl1', 'ID_WIN');
 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win1 = window.open('myurl1', 'ID_WIN');
window.open(url, "_blank", "x=y")
"location=0"
window.open(url, "window" + id, 'toolbar=0,location=0,scrollbars=1,statusbar=1,menubar=0,resizable=1,width=' + width + ',height=800,left=100,top=50');