jQuery: перейдите по URL с target = "_ blank" - PullRequest
58 голосов
/ 13 июля 2011

Я использую этот бит кода JQuery, чтобы получить ссылку:

var url = $(this).attr('href');

- и этот фрагмент кода для перехода к этому href:

window.location = url;

Все так, как я хочу, за исключением того, что новая страница открывается в том же окне, что и предыдущая, и я хочу, чтобы она открывалась в новом окне или вкладке (то, чего в обычном html можно было бы достичь с помощью цель = "_ пустая" формула).

Вопрос: Как открыть ссылку в новом окне или вкладке с помощью jQuery?

Спасибо за вашу помощь!

Ответы [ 7 ]

82 голосов
/ 13 июля 2011

Вам необходимо открыть новое окно:

window.open(url);

https://developer.mozilla.org/en-US/docs/DOM/window.open

58 голосов
/ 13 июля 2011

Используйте

var url = $(this).attr('href');
window.open(url, '_blank');

Обновление : лучше получить href с помощью prop, поскольку он вернет полный URL-адрес и будет немного быстрее.

var url = $(this).prop('href');
9 голосов
/ 13 октября 2012

Вопрос: Как открыть ссылку в новом окне или вкладке с помощью jQuery?

var url = $(this).attr('href').attr('target','_blank');
3 голосов
/ 27 октября 2016

Определить, использовался ли целевой атрибут и содержит ли он "_blank". Для мобильных устройств, которым не нравится «_blank», это надежная альтернатива.

    $('.someSelector').bind('touchend click', function() {

        var url = $('a', this).prop('href');
        var target = $('a', this).prop('target');

        if(url) {
            // # open in new window if "_blank" used
            if(target == '_blank') { 
                window.open(url, target);
            } else {
                window.location = url;
            }
        }           
    });
1 голос
/ 16 мая 2013

Функция .ready используется для вставки атрибута после завершения загрузки страницы.

$(document).ready(function() {
     $("class name or id a.your class name").attr({"target" : "_blank"})
})
1 голос
/ 13 июля 2011

Если вы хотите создать всплывающее окно через jQuery, вам нужно будет использовать плагин.Похоже, что он будет делать то, что вы хотите:

http://rip747.github.com/popupwindow/

В качестве альтернативы, вы всегда можете использовать JavaScript window.open функцию.

Обратите внимание, что при любом подходе новое окно должно быть открыто в ответ на пользовательский ввод / действие (например, щелчок по ссылке или кнопке).В противном случае блокировщик всплывающих окон браузера просто заблокирует всплывающее окно.

0 голосов
/ 14 октября 2014

Попробуйте использовать следующий код.

$(document).ready(function(){
    $("a[@href^='http']").attr('target','_blank');
});
...