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

我怎样才能做到呢?


当前回答

我可能错了,但据我所知,这是由用户的浏览器首选项控制的,我不相信这可以被重写。

其他回答

你不需要这么做。允许用户拥有他们想要的任何首选项。

Firefox默认是这样做的,因为在一个新窗口中打开一个页面很烦人,如果用户不希望页面这样做,就不应该允许页面这样做。(Firefox允许你在新窗口中打开标签,如果你这样设置的话)。

好的,经过大量的测试,我的结论是:

表演时:

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

不会得到相同的结果。

在第一种情况下,当您第一次打开一个没有额外参数的页面时,它将在一个新选项卡中打开。在这种情况下,第二个调用也将在这个选项卡中打开,因为您给出的名称。

在第二种情况下,由于您的第一次调用使用了额外的参数,页面将在一个新的“真实窗口”中打开。在这种情况下,即使第二次调用没有额外的参数,它也会在这个新的“真实窗口”中打开……但是同样的账单!

这意味着第一次调用很重要,因为它决定将页面放在哪里。

我认为这不是html目标属性问题,但你在“选项”菜单下的“选项卡”选项卡中选中了“在新选项卡中打开nw窗口”选项。请检查并重试。

试试这个方法.....

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;
  }

我可能错了,但据我所知,这是由用户的浏览器首选项控制的,我不相信这可以被重写。