У меня есть поле выбора, которое вызывает, window.open(url)
когда элемент выбран. Firefox откроет страницу в новой вкладке по умолчанию. Однако мне бы хотелось, чтобы страница открывалась в новом окне, а не в новой вкладке.
Как я могу сделать это?
javascript
firefox
Адам
источник
источник
Ответы:
Дайте окну параметр «specs» с шириной / высотой. Смотрите здесь для всех возможных вариантов.
Когда вы указываете ширину / высоту, он открывает его в новом окне вместо вкладки.
источник
Вам не нужно использовать высоту, просто убедитесь, что вы используете
_blank
, без него он открывается в новой вкладке.Для пустого окна:
Для конкретного URL:
источник
location=0
это необходимо, когда JS вызывается из кнопки или элемента привязки.location=0
параметров. Я бы также предложил назвать окно вместо использования_blank
цели, чтобы одно и то же окно использовалось снова, если пользователь несколько раз щелкает элемент, открывающий всплывающее окно, и связывается сfocus()
тем, чтобы уже открытое всплывающее окноwindow.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
Я могу ошибаться, но из того, что я понимаю, это контролируется настройками браузера пользователя, и я не верю, что это можно переопределить.
источник
Пытаться:
У меня есть код, который делает то, что вы говорите, но в нем много параметров. Я думаю, что это минимум, дайте мне знать, если это не сработает, я опубликую остальные.
источник
Хорошо, после многих испытаний, вот мой вывод:
Когда вы выполняете:
или что бы вы ни указали в поле назначения, это ничего не изменит: новая страница будет открыта в новой вкладке (поэтому зависит от предпочтений пользователя)
Если вы хотите, чтобы страница открывалась в новом «реальном» окне, вы должны указать дополнительный параметр. Подобно:
После тестирования кажется, что дополнительный параметр, который вы используете, не имеет значения: дело не в том, что вы вводите «этот параметр» или «этот другой», которые создают новое «реальное окно», а в том, что есть новый параметр (ы). ).
Но что-то запутано и может объяснить множество неправильных ответов:
Эта:
И это:
НЕ даст тот же результат.
В первом случае при первом открытии страницы без дополнительных параметров она откроется в новой вкладке . И в этом случае второй вызов также будет открыт на этой вкладке из-за имени, которое вы дадите.
Во втором случае, когда ваш первый вызов сделан с дополнительным параметром, страница откроется в новом « реальном окне ». И в этом случае, даже если второй вызов будет выполнен без дополнительного параметра, он также будет открыт в этом новом « реальном окне » ... но на той же вкладке!
Это означает, что первый звонок важен, так как он решил, где разместить страницу.
источник
Тебе не нужно это делать. Разрешить пользователю иметь любые предпочтения.
Firefox делает это по умолчанию, потому что открытие страницы в новом окне раздражает, и страница никогда не должна делать этого, если пользователь этого не желает. (Firefox позволяет открывать вкладки в новом окне, если вы установите его таким образом).
источник
Вы можете попробовать следующую функцию:
HTML-код для исполнения:
источник
popup.location = URL;
?window.open()
Вызов должен открыть его в соответствующий URL, и в вашем примере кода,URL
не определен , так что будет падать назад к экспериментальным (и не широко поддержка) объекта URL . Хотя использование этого для этого является спорным, мне любопытно, какие мотивы для его использования здесь?Ключом являются параметры:
Если вы укажете Параметры [Высота = "", Ширина = ""], то он откроется в новых окнах.
Если вы не предоставите параметры, то он откроется в новой вкладке.
Протестировано в Chrome и Firefox
источник
Интересно, что я обнаружил, что если вы передадите пустую строку (в отличие от пустой строки или списка свойств) для третьего атрибута window.open, он откроется в новой вкладке для Chrome, Firefox и IE. Если отсутствовал, поведение было другим.
Итак, это мой новый звонок:
источник
попробуйте этот метод .....
источник
Для меня решение было иметь
в 3-м параметре. Протестировано на последней версии FF / Chrome и старой версии IE11
Полный вызов метода, который я использую ниже (как я люблю использовать переменную ширину):
источник
Я только что попробовал это с IE (11) и Chrome (54.0.2794.1 канарейка SyzyASan):
... и он открылся в новом окне.
Это означает, что Клинт Пахл правильно понял , когда сказал, что предоставление какого-либо одного параметра приведет к открытию нового окна.
- и, видимо, это не должно быть законным параметром!
(YMMV - как я уже сказал, я тестировал его только в двух местах ... и следующее обновление может аннулировать результаты в любом случае)
ETA: Я только что заметил - в IE окно не имеет декораций.
источник
Ответили здесь . Но разместив его снова для справки.
window.open()
не будет открываться в новой вкладке, если это не происходит при фактическом событии клика. В приведенном примере URL открывается при фактическом событии клика. Это будет работать при условии, что у пользователя есть соответствующие настройки в браузере.Точно так же, если вы пытаетесь выполнить ajax-вызов внутри функции click и хотите открыть окно в случае успеха, убедитесь, что вы делаете ajax-вызов с
async : false
установленным параметром.источник
Я думаю, что это не проблема целевых свойств html, но вы сняли флажок «открывать новые окна в новой вкладке вместо» во вкладке «вкладка» в меню «Параметры» Firefox. проверьте это и попробуйте снова.
источник
У меня был тот же вопрос, но я нашел относительно простое решение.
В JavaScript я проверял,
window.opener !=null;
было ли окно всплывающим. Если вы используете какой-то подобный код обнаружения, чтобы определить, является ли окно, в котором вы отображаете сайт, всплывающим, вы можете легко его «отключить», если вы хотите открыть «новое» окно, используя JavaScript для новых окон.Просто поместите это в верхней части своей страницы, чтобы вы всегда были «новым» окном.
Я использую это на странице входа в систему моего сайта, чтобы пользователи не получали всплывающее окно, если они используют всплывающее окно для перехода на мой сайт.
Вы можете даже создать простую страницу перенаправления, которая делает это и затем переходит на URL, который вы ей дали. Что-то вроде,
JavaScript на родительской странице:
И затем с помощью небольшого javascript отсюда вы можете получить URL и перенаправить на него.
JavaScript на странице перенаправления:
источник