JavaScript открыт в новом окне, а не в закладке

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

Как я могу это сделать?

Ответ 1

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

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

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

Ответ 2

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

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

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

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

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');

Ответ 3

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

Ответ 4

Try:

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

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

Ответ 5

Вам не нужно. Позвольте пользователю иметь любые настройки, которые они хотят.

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

Ответ 6

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

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

Ответ 7

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

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

 window.open(url, windowName, '');

Ответ 8

Ключ - это параметры:

Если вы укажите Параметры [Height = ", Width =" "], то он откроется в новых окнах.

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

Протестировано в Chrome и Firefox

Ответ 9

Хорошо, после многого теста, здесь мой concluson:

Когда вы выполняете:

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

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

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

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

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

Ответ 10

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

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

Ответ 11

Отвечено здесь. Но отправьте его снова для справки.

window.open() не будет открываться на новой вкладке, если это не происходит при фактическом событии клика. В приведенном примере URL-адрес открывается при фактическом событии клика. Это будет работать, если пользователь имеет соответствующие настройки в браузере.

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

Аналогично, если вы пытаетесь выполнить вызов ajax в функции щелчка и хотите открыть окно с успехом, убедитесь, что вы выполняете вызов ajax с помощью параметра async : false.

Ответ 12

Я думаю, что проблема не с html-целевыми свойствами, а вы отключили опцию "открывать nw-окна в новой вкладке" на вкладке "вкладка" в меню "опции" Firefox. проверьте его и повторите попытку.

enter image description here

Ответ 13

У меня был такой же вопрос, но он нашел относительно простое решение.

В JavaScript я проверял window.opener !=null;, чтобы определить, появилось ли окно. Если вы используете какой-то аналогичный код обнаружения, чтобы определить, отображается ли окно, в котором вы находитесь, является всплывающее окно, вы можете легко "отключить его", когда хотите открыть "новое" окно с помощью нового окна JavaScript.

Просто поставьте это в верхней части своей страницы, которую хотите всегда быть "новым" окном.

<script type="text/javascript">
    window.opener=null;
</script>

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

Вы даже можете создать простую страницу переадресации, которая сделает это, а затем переместится к URL-адресу, который вы ему дали. Что-то вроде,

JavaScript на родительской странице:

window.open("MyRedirect.html?URL="+URL, "_blank");

И затем, используя небольшой javascript из здесь, вы можете получить 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>

Ответ 14

Я просто попробовал это с IE (11) и Chrome (54.0.2794.1 canary SyzyASan):

window.open(url, "_blank", "x=y")

... и он открывается в новом окне.

Это означает, что Clint pachl правильно, когда он сказал, что предоставление любого одного параметра приведет к открытию нового окна.

- и, по-видимому, он не должен быть законным параметром!

(YMMV - как я уже сказал, я тестировал его только в двух местах... и следующее обновление может привести к аннулированию результатов любым способом)

ETA: Я только заметил, хотя - в IE окно не имеет украшений.

Ответ 15

Протестировано в Chrome 31.0.1650.63, Firefox 25.01, Safari 6.1.1 и IE 9:

window.open(url, true, '_blank');

Почему это работает, я не знаю, но это так.