JavaScript open in a new window, not tab

前端 未结 15 1278
余生分开走
余生分开走 2020-11-21 22:18

I have a select box that calls window.open(url) when an item is selected. Firefox will open the page in a new tab by default. However, I would like the page t

15条回答
  •  温柔的废话
    2020-11-21 22:57

    OK, after making a lot of test, here my concluson:

    When you perform:

         window.open('www.yourdomain.tld','_blank');
         window.open('www.yourdomain.tld','myWindow');
    

    or whatever you put in the destination field, this will change nothing: the new page will be opened in a new tab (so depend on user preference)

    If you want the page to be opened in a new "real" window, you must put extra parameter. Like:

    window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');
    

    After testing, it seems the extra parameter you use, dont' really matter: this is not the fact you put "this parameter" or "this other one" which create the new "real window" but the fact there is new parameter(s).

    But something is confused and may explain a lot of wrong answers:

    This:

     win1 = window.open('myurl1', 'ID_WIN');
     win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
    

    And this:

     win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
     win1 = window.open('myurl1', 'ID_WIN');
    

    will NOT give the same result.

    In the first case, as you first open a page without extra parameter, it will open in a new tab. And in this case, the second call will be also opened in this tab because of the name you give.

    In second case, as your first call is made with extra parameter, the page will be opened in a new "real window". And in that case, even if the second call is made without the extra parameter, it will also be opened in this new "real window"... but same tab!

    This mean the first call is important as it decided where to put the page.

提交回复
热议问题