JavaScript открывается в новом окне, а не во вкладке - PullRequest
350 голосов
/ 07 апреля 2009

У меня есть поле выбора, которое вызывает window.open(url), когда элемент выбран. Firefox откроет страницу в новой вкладке по умолчанию. Однако мне бы хотелось, чтобы страница открывалась в новом окне, а не в новой вкладке.

Как мне это сделать?

Ответы [ 15 ]

439 голосов
/ 07 апреля 2009

Дайте окну параметр 'specs' с шириной / высотой. См. здесь для всех возможных вариантов.

window.open(url, windowName, "height=200,width=200");

Когда вы указываете ширину / высоту, он открывает его в новом окне вместо вкладки.

104 голосов
/ 23 февраля 2010

Вам не нужно использовать высоту, просто убедитесь, что вы используете _blank, без него он откроется в новой вкладке.

Для пустого окна:

window.open('', '_blank', 'toolbar=0,location=0,menubar=0');

Для определенного URL:

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');
81 голосов
/ 07 апреля 2009

Возможно, я ошибаюсь, но, насколько я понимаю, это контролируется настройками браузера пользователя, и я не верю, что это можно переопределить.

15 голосов
/ 07 апреля 2009

Попробуйте:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");

У меня есть код, который делает то, что вы говорите, но в нем много параметров. Я думаю, что это минимум, дайте мне знать, если это не сработает, я опубликую остальные.

10 голосов
/ 27 января 2011

Вы можете попробовать следующую функцию:

<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>
9 голосов
/ 07 апреля 2009

Тебе не нужно это делать. Разрешить пользователю иметь любые предпочтения.

Firefox делает это по умолчанию, потому что открытие страницы в новом окне раздражает, и страница никогда не должна делать этого, если пользователь этого не желает. (Firefox позволяет открывать вкладки в новом окне, если вы установите его таким образом).

7 голосов
/ 28 ноября 2015

ОК, после многих испытаний, вот мой вывод:

При выполнении:

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

НЕ даст тот же результат.

В первом случае, когда вы впервые откроете страницу без дополнительного параметра, она откроется в новой вкладке . И в этом случае второй вызов будет также открыт на этой вкладке из-за имени, которое вы дадите.

Во втором случае, когда ваш первый вызов будет сделан с дополнительным параметром , страница откроется в новом " реальном окне ". И в этом случае, даже если второй вызов сделан без дополнительного параметра, он также будет открыт в этом новом " реальном окне " ... но той же вкладке!

Это означает, что первый звонок важен, так как он решил, куда поместить страницу.

5 голосов
/ 07 января 2013

Ключом являются параметры:

Если вы предоставите Параметры [Высота = "", Ширина = ""], то он откроется в новых окнах.

Если вы НЕ предоставите Параметры, то откроется новая вкладка.

Проверено в Chrome и Firefox

5 голосов
/ 02 июня 2011

Интересно, я обнаружил, что если вы передадите пустую строку (в отличие от пустой строки или списка свойств) для третьего атрибута window.open, он откроется в новом вкладка для Chrome, Firefox и IE. Если отсутствовал, поведение было бы другим.

Итак, это мой новый звонок:

 window.open(url, windowName, '');
4 голосов
/ 19 декабря 2013

попробуйте этот метод .....

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;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...