4

为什么传递给 window.open('SomeWinName') 的这些参数会在选项卡中打开:

toolbar=1,
location=1,
directories=1,
addressbar=1,
scrollbars=1,
status=1,
menubar=1,
resizable=1,
outerWidth="+x+",
outerHeight="+

但如果我使用这些参数,窗口会在新窗口中打开:

resizable=1,
outerWidth="+x+",
outerHeight="+y
4

3 回答 3

1

这与当您只使用 window.open("name") 时,它没有设置地址栏和菜单栏等的参数有关。所以它会在没有这些东西的情况下在新窗口中打开。它无法在新选项卡中执行此操作,因为显然它需要与当前窗口相同的 UI 设置。

基本上,谷歌的“期望”行为是在新标签中打开。但是,如果它没有足够的信息来做到这一点,它会做次佳的事情并打开一个新窗口。

于 2012-05-14T15:29:43.943 回答
0

指定widthouterWidth强制新窗口的大小不同于源窗口的大小。如果width是默认设置(与当前窗口相同),则浏览器将默认使用新选项卡(如果用户在首选项中检查了新选项卡而不是新窗口,我相信大多数现代浏览器默认都会这样做。)

于 2012-05-14T15:32:16.140 回答
0

在 w3c 规范中没有 outerWidth 和 outerHeight:W3C Specs

所以,这对我很有用:

var x = y = 10;
window.open ('Yeah', "toolbar=1,location=1,directories=1,addressbar=1,scrollbars=1,status=1,menubar=1,resizable=1,width="+x+",height="+y);
window.open ('Yeah2', "resizable=1,width="+x+",height="+y);

它在两个不同的选项卡中打开两个新窗口。

于 2012-05-14T15:42:25.590 回答