В хроме это открывается в новой вкладке:
<button onclick="window.open('newpage.html', '_blank')" />
это открывается в новом окне (но я бы хотел, чтобы это открылось и в новой вкладке:
<script language="javascript">
window.open('newpage.html', '_blank');
</script>
Возможно ли это?
javascript
window.open
Андрей
источник
источник
Ответы:
Вы не можете напрямую контролировать это, потому что это опция, контролируемая пользователями Internet Explorer.
Открытие страниц с использованием Window.open с другим именем окна будет открываться в новом окне браузера, как всплывающее окно, ИЛИ открываться в новой вкладке, если пользователь настроил браузер для этого.
РЕДАКТИРОВАТЬ:
Более подробное объяснение:
1. В современных браузерах window.open будет открываться в новой вкладке, а не во всплывающем окне.
2. Вы можете заставить браузер использовать новое окно («всплывающее окно»), указав параметры в третьем параметре.
3. Если вызов window.open не был частью инициированного пользователем события, он откроется в новом окне.
4. «Событие, инициированное пользователем» не обязательно должно вызывать одну и ту же функцию, но оно должно происходить из функции, вызываемой щелчком пользователя.
5. Если инициированное пользователем событие делегирует или откладывает вызов функции (в прослушивателе событий или делегате, не привязанном к событию щелчка, или, например, с помощью setTimeout), он теряет свой статус как «инициированный пользователем».
6. Некоторые блокировщики всплывающих окон разрешают открытие окон из инициированных пользователем событий, но не тех, которые открываются иначе.
7. Если какое-либо всплывающее окно заблокировано, то иногда блокируются и те, которые обычно разрешены блокировщиком (через инициированные пользователем события). Некоторые примеры…
Принудительное открытие окна в новом экземпляре браузера вместо новой вкладки:
Следующее будет квалифицироваться как событие, инициированное пользователем, даже если оно вызывает другую функцию:
Следующее не может считаться инициированным пользователем событием, поскольку setTimeout откладывает его:
источник
Иногда полезно принудительно использовать вкладку, если это нравится пользователю. Как заявил выше Пракаш, это иногда продиктовано использованием события, не инициированного пользователем, но есть способы обойти это.
Например:
всегда будет открывать «newurl» в новом окне браузера, поскольку функция «всегда» не считается инициированной пользователем. Однако если мы сделаем это:
мы открываем новое окно браузера или создаем новую вкладку, в зависимости от предпочтений пользователя в кнопке, нажатие которой происходит по инициативе пользователя. Затем мы просто устанавливаем местоположение на желаемый URL после возврата из сообщения AJAX. Вуаля, мы принудительно используем вкладку, если пользователю это нравится.
источник
если вы используете
window.open(url, '_blank')
, он будет заблокирован (блокировщик всплывающих окон) в Chrome, Firefox и т. д.попробуй это,
рабочий скрипт js для этого http://jsfiddle.net/safeeronline/70kdacL4/2/
рабочая скрипта js для окна ajax открыта http://jsfiddle.net/safeeronline/70kdacL4/1/
источник
На данный момент (Chrome 39) я использую этот код, чтобы открыть новую вкладку:
Конечно, это может измениться в будущих версиях Chrome.
Плохая идея использовать это, если вы не можете контролировать браузер, который используют ваши пользователи. Это может не работать в будущих версиях или с другими настройками.
источник
VM646 js:12 Blocked opening 'http://www.stackoverflow.com/' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set.
Это откроет ссылку на новой вкладке в Chrome и Firefox и, возможно, в других браузерах, которые я не тестировал:
Он в основном открывает новую пустую вкладку, а затем устанавливает расположение этой пустой вкладки. Помните, что это своего рода взлом, поскольку поведение вкладок / окон браузера на самом деле является областью, ответственностью и выбором браузера и пользователя.
Вторая строка может быть вызвана в обратном вызове (например, после того, как вы выполнили некоторый запрос AJAX), но тогда браузер не распознает ее как инициированное пользователем событие щелчка и может заблокировать всплывающее окно.
источник
$window
это просто способ использования AngularJSwindow
.window
Вместо этого вы можете просто использовать . Дополнительная информация: docs.angularjs.org/api/ng/service/$windowПонятное мини-решение
$('<form action="http://samedomainurl.com/" target="_blank"></form>').submit()
источник
Вы можете использовать этот код для открытия в новой вкладке ..
Получил из stackoverflow ..
источник
Лучший способ использовать:
1- добавьте ссылку на свой html:
2- добавить функцию JS:
3- просто вызовите функцию OpenNewTab с нужной ссылкой
источник