我有一个选择框,它会在选择window.open(url)
项目时调用。默认情况下,Firefox 将在新选项卡中打开该页面。但是,我希望页面在新窗口中打开,而不是在新选项卡中打开。
我怎样才能做到这一点?
我有一个选择框,它会在选择window.open(url)
项目时调用。默认情况下,Firefox 将在新选项卡中打开该页面。但是,我希望页面在新窗口中打开,而不是在新选项卡中打开。
我怎样才能做到这一点?
为open
调用指定窗口“功能” :
window.open(url, windowName, "height=200,width=200");
当您指定宽度/高度时,它将在新窗口而不是选项卡中打开它。
有关所有可能的功能,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window.open#Position_and_size_features。
您不需要使用高度,只需确保使用_blank
, 没有它,它会在新选项卡中打开。
对于空窗口:
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
对于特定的 URL:
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
我可能是错的,但据我所知,这是由用户的浏览器首选项控制的,我不相信这可以被覆盖。
尝试:
window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");
我有一些代码可以做你所说的,但是里面有很多参数。我认为这些是最低限度的,如果它不起作用,请告诉我,我会发布其余的。
好的,经过大量测试后,我的结论是:
当您执行:
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');
经过测试,您使用的额外参数似乎并不重要:这不是您放置“这个参数”或“另一个”创建新“真实窗口”的事实,而是存在新参数的事实)。
但有些东西令人困惑,可能会解释很多错误的答案:
这个:
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');
不会给出相同的结果。
在第一种情况下,当您第一次打开一个没有额外参数的页面时,它将在一个新选项卡中打开。在这种情况下,由于您提供的名称,第二个调用也将在此选项卡中打开。
在第二种情况下,由于您的第一次调用是使用额外参数进行的,因此页面将在新的“真实窗口”中打开。在这种情况下,即使在没有额外参数的情况下进行第二次调用,它也会在这个新的“真实窗口”中打开……但相同的选项卡!
这意味着第一次调用很重要,因为它决定了页面的放置位置。