ada*_*dam 357 javascript firefox
我有一个选择框时,选择window.open(url)一个项目时调用.Firefox默认会在新标签页中打开该页面.但是,我希望页面在新窗口中打开,而不是新选项卡.
我怎么能做到这一点?
DNS*_*DNS 449
给窗口一个'specs'参数,宽度/高度.请参阅此处了解所有可能的选项.
window.open(url, windowName, "height=200,width=200");
Run Code Online (Sandbox Code Playgroud)
指定宽度/高度时,它将在新窗口中打开它而不是选项卡.
小智 108
您不需要使用高度,只需确保使用_blank,如果没有它,它将在新选项卡中打开.
对于空窗口:
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
Run Code Online (Sandbox Code Playgroud)
对于特定的URL:
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
Run Code Online (Sandbox Code Playgroud)
Jor*_*nes 82
我可能错了,但据我所知,这是由用户的浏览器偏好控制的,我不相信这可以被覆盖.
小智 15
尝试:
window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");
Run Code Online (Sandbox Code Playgroud)
我有一些代码可以说你的意思,但其中有很多参数.我认为这些是最低限度的,让我知道如果它不起作用,我会发布其余的.
Pet*_*ter 10
好的,经过大量的测试,我的结论是:
执行时:
window.open('www.yourdomain.tld','_blank');
window.open('www.yourdomain.tld','myWindow');
Run Code Online (Sandbox Code Playgroud)
或者你在目标字段中放置的任何内容,这将不会改变任何内容:新页面将在新选项卡中打开(因此取决于用户首选项)
如果您希望在新的"真实"窗口中打开页面,则必须添加额外的参数.喜欢:
window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');
Run Code Online (Sandbox Code Playgroud)
经过测试,看起来你使用的额外参数,并不重要:这不是你把"这个参数"或"另一个"创建新的"真实窗口"但事实上有新参数的事实(s ).
但有些东西很混乱,可能解释了很多错误的答案:
这个:
win1 = window.open('myurl1', 'ID_WIN');
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
Run Code Online (Sandbox Code Playgroud)
还有这个:
win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
win1 = window.open('myurl1', 'ID_WIN');
Run Code Online (Sandbox Code Playgroud)
不会给出相同的结果.
在第一种情况下,当您首次打开没有额外参数的页面时,它将在新选项卡中打开.在这种情况下,由于您提供的名称,第二个调用也将在此选项卡中打开.
在第二种情况下,当您使用额外参数进行第一次调用时,页面将在新的" 真实窗口 "中打开.在这种情况下,即使第二次调用是在没有额外参数的情况下进行的,它也将在这个新的" 真实窗口 "中打开 ......但是相同的标签!
这意味着第一次调用很重要,因为它决定了放置页面的位置.
小智 9
您可以尝试以下功能:
<script type="text/javascript">
function open(url)
{
var popup = window.open(url, "_blank", "width=200, height=200") ;
popup.location = URL;
}
</script>
Run Code Online (Sandbox Code Playgroud)
用于执行的HTML代码:
<a href="#" onclick="open('http://www.google.com')">google search</a>
Run Code Online (Sandbox Code Playgroud)
你不应该这样做.允许用户拥有他们想要的任何偏好.
Firefox默认情况下会这样做,因为在新窗口中打开页面很烦人,如果不是用户所希望的话,绝不允许页面这样做.(Firefox允许您在新窗口中打开选项卡,如果您这样设置).
我刚刚用 IE (11) 和 Chrome (54.0.2794.1 canary SyzyASan) 尝试过:
window.open(url, "_blank", "x=y")
Run Code Online (Sandbox Code Playgroud)
...它在新窗口中打开。
这意味着Clint pachl说得对,提供任何一个参数都会导致新窗口打开。
——显然它不一定是合法的参数!
(YMMV - 正如我所说,我只在两个地方测试了它......并且下一次升级可能会使结果无效,无论如何)
ETA:不过,我刚刚注意到 - 在 IE 中,窗口没有装饰。
对我来说,解决方案是
"location=0"
Run Code Online (Sandbox Code Playgroud)
在第三个参数中。在最新的 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');
Run Code Online (Sandbox Code Playgroud)
有趣的是,我发现如果你为window.open的第三个属性传入一个空字符串(而不是空字符串或属性列表),它将在Chrome,Firefox和IE的新选项卡中打开.如果缺席,行为就不同了.
所以,这是我的新电话:
window.open(url, windowName, '');
Run Code Online (Sandbox Code Playgroud)
关键是参数:
如果您提供 参数[Height ="",Width =""],则它将在新窗口中打开.
如果您不提供参数,则它将在新选项卡中打开.
在Chrome和Firefox中测试过
| 归档时间: |
|
| 查看次数: |
512380 次 |
| 最近记录: |