我有一个选择框,调用window.open(url)当一个项目被选中。默认情况下,Firefox将在新选项卡中打开页面。但是,我希望页面在一个新的窗口中打开,而不是一个新的选项卡。

我怎样才能做到呢?


当前回答

关键是参数:

如果你提供参数[Height="", Width=""],那么它将在新窗口中打开。

如果你不提供参数,那么它将在新选项卡中打开。

在Chrome和Firefox中测试

其他回答

为打开调用指定窗口“features”:

window.open(url, windowName, "height=200,width=200");

当您指定宽度/高度时,它将在一个新窗口中打开,而不是一个选项卡。

请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window.open#Position_and_size_features了解所有可能的功能。

对我来说,解决办法就是

"location=0"

在第三个参数中。在最新的FF/Chrome和旧版本的IE11上测试

我使用的完整方法调用如下(因为我喜欢使用可变宽度):

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');

有趣的是,我发现如果您为window的第三个属性传递一个空字符串(而不是空字符串或属性列表)。打开,它将在Chrome, Firefox和IE的新选项卡中打开。如果缺席,行为就不同了。

这是我的新号召:

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

在这里回答说。但再次发布,以供参考。

Window.open()将不会在新选项卡中打开,如果它没有发生在实际的单击事件。在这个例子中,url是在实际点击事件中被打开的。这将工作提供用户在浏览器中有适当的设置。

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

类似地,如果你试图在click函数中进行ajax调用,并希望在成功时打开一个窗口,请确保你正在使用async: false选项集进行ajax调用。

Try:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");

我有一些代码,做什么你说,但有很多参数。我认为这些是最低限度的,如果它不起作用,请告诉我,我会张贴剩下的。