web-dev-qa-db-fra.com

jQuery: aller à l'URL avec target = "_ blank"

J'utilise ce morceau de code jQuery pour obtenir le href du lien:

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

- et ce bout de code pour aller à cet href:

window.location = url;

Tout est exactement comme je le veux, sauf que la nouvelle page s'ouvre dans la même fenêtre que la précédente et que je souhaite que celle-ci s'ouvre dans une nouvelle fenêtre ou un nouvel onglet (un résultat qui aurait été obtenu simplement en utilisant HTML = " _blank "formule). 

Question: Comment puis-je ouvrir le href dans la nouvelle fenêtre ou un nouvel onglet avec jQuery?

Merci de votre aide!

54
Dimitri Vorontzov

Vous devez ouvrir une nouvelle fenêtre:

window.open(url);

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

77

Utilisation,

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

Mise à jour : il est préférable de récupérer href avec prop, car il renverra l'URL complète et sera légèrement plus rapide.

var url = $(this).prop('href');
55
brenjt

Question: Comment puis-je ouvrir le href dans la nouvelle fenêtre ou un nouvel onglet avec jQuery?

var url = $(this).attr('href').attr('target','_blank');
9
defau1t

Détecte si un attribut cible a été utilisé et contient "_blank". Pour les appareils mobiles qui n'aiment pas "_blank", il s'agit d'une alternative fiable.

    $('.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;
            }
        }           
    });
3
recurse

La fonction .ready est utilisée pour insérer l'attribut une fois le chargement de la page terminé.

$(document).ready(function() {
     $("class name or id a.your class name").attr({"target" : "_blank"})
})
1
Vidit Anjaria

Si vous souhaitez créer la fenêtre contextuelle via jQuery, vous devez utiliser un plugin. Celui-ci semble faire ce que vous voulez:

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

Alternativement, vous pouvez toujours utiliser la fonction window.open de JavaScript.

Notez qu'avec l'une ou l'autre approche, la nouvelle fenêtre doit être ouverte en réponse à la saisie/action de l'utilisateur (par exemple, un clic sur un lien ou un bouton). Sinon, le bloqueur de popup du navigateur ne bloquera que le popup.

1
aroth

Essayez d'utiliser le code suivant.

$(document).ready(function(){
    $("a[@href^='http']").attr('target','_blank');
});
0
Lähîrü