我有一个选择框,window.open(url)
当选择一个项目时会调用。Firefox默认会在新标签页中打开页面。但是,我希望页面在新窗口中打开,而不是在新标签页中打开。
我该怎么做?
我有一个选择框,window.open(url)
当选择一个项目时会调用。Firefox默认会在新标签页中打开页面。但是,我希望页面在新窗口中打开,而不是在新标签页中打开。
我该怎么做?
Answers:
给该窗口一个“ specs”参数,该参数具有width / height。有关所有可能的选项,请参见此处。
window.open(url, windowName, "height=200,width=200");
指定宽度/高度时,它将在新窗口(而不是选项卡)中打开它。
您无需使用高度,只需确保使用即可_blank
,如果没有使用高度,它将在新选项卡中打开。
对于空窗口:
window.open('', '_blank', 'toolbar=0,location=0,menubar=0');
对于特定的URL:
window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
location=0
从按钮或锚点元素调用JS时,至少在Chrome中是必需的。
location=0
参数。我还建议命名窗口而不是使用_blank
目标,以便如果用户多次单击打开弹出窗口的元素并与之链接,则再次使用同一窗口,并与之链接,focus()
以便已经打开的弹出窗口获得焦点:window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
我可能是错的,但是据我了解,这是由用户的浏览器首选项控制的,我不认为这可以被覆盖。
尝试:
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');
经过测试,似乎使用了额外的参数,这并不重要:这不是您放置“ this parameter”或“ this other”创建新的“ real window”的事实,而是存在一个新参数)。
但是有些东西很混乱,可能会解释很多错误的答案:
这个:
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');
不会给出相同的结果。
在第一种情况下,首次打开没有额外参数的页面时,该页面将在新标签页中打开。在这种情况下,由于您输入的名称,第二个呼叫也将在此选项卡中打开。
在第二种情况下,由于您的第一次调用使用额外的参数,因此页面将在新的“ 真实窗口 ”中打开。在这种情况下,即使在没有额外参数的情况下进行第二次调用,也将在此新的“ 真实窗口 ”中打开它……但具有相同的选项卡!
这意味着第一次呼叫很重要,因为它决定了放置页面的位置。
您不需要。允许用户具有他们想要的任何首选项。
Firefox会默认执行此操作,因为在新窗口中打开页面很烦人,如果用户不希望这样做,则绝对不允许该页面这样做。(如果以这种方式设置,Firefox允许您在新窗口中打开选项卡)。
您可以尝试以下功能:
<script type="text/javascript">
function open(url)
{
var popup = window.open(url, "_blank", "width=200, height=200") ;
popup.location = URL;
}
</script>
用于执行的HTML代码:
<a href="#" onclick="open('http://www.google.com')">google search</a>
关键是参数:
如果提供 参数[Height =“”,Width =“”],它将在新窗口中打开。
如果您不提供 Parameters,那么它将在新选项卡中打开。
在Chrome和Firefox中测试
尝试那种方法.....
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;
}
在这里回答。但是再次发布以供参考。
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调用。
我有同样的问题,但是找到了一个相对简单的解决方案。
在JavaScript中,我正在检查window.opener !=null;
以确定窗口是否为弹出窗口。如果您使用类似的检测代码来确定正在渲染您的网站的窗口是否弹出,则当您想使用新的Windows JavaScript 打开“新”窗口时,可以轻松地“关闭”。
只需将其放在页面顶部,您就希望始终成为“新”窗口。
<script type="text/javascript">
window.opener=null;
</script>
我在网站的登录页面上使用此功能,因此,如果用户使用弹出窗口导航到我的网站,则不会出现弹出行为。
您甚至可以创建一个简单的重定向页面来执行此操作,然后移至您为其指定的URL。就像是,
父页面上的JavaScript:
window.open("MyRedirect.html?URL="+URL, "_blank");
然后,通过使用此处的一些JavaScript,您可以获取URL并重定向到该URL。
重定向页面上的JavaScript:
<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>