Quelle est la meilleure façon d'ouvrir tous les liens externes (URL qui ne correspondent pas au domaine actuel) dans un nouvel onglet à l'aide de JavaScript, sans utiliser jQuery?
Voici la jQuery que je suis actuel en utilisant: p>
4 Réponses :
Ajouter une cible = "_ vide" à la balise. Vous pouvez le faire dans le pré-processeur (par exemple PHP) ou dans une JS lors de l'événement surcharge. p>
Cherchez-vous un moyen de faire ce qui précède en JavaScript mais sans utiliser jQuery? Si oui, avez-vous une autre bibliothèque, ou doit-il être un JS simple?
var externalLinks = function(){ var anchors = document.getElementsByTagName('a'); var length = anchors.length; for(var i=0; i<length;i++){ var href = anchor[i].href; if(href.indexOf('http://sample.com/') || href.indexOf('http://www.sample.com/')){ return; } else{ anchor[i].target='_blank'; } } };
Est-ce que cela n'utilise-t-il pas .Avoir () fonction?
Il a utilisé et ajoutez la cible = "_ vide", puis l'utilisateur clique sur elle va sur le lien comme nouvel onglet / fenêtre
Comme je dis, votre solution n'utilise-t-elle pas la fonction de JQuery ()? Ma question spécifique aucune utilisation de jQuery.
Il suffit de remplacer le chacun avec cliquez sur.
Stackoverflow.com/Questtions/10273890 / ... Essayez cela, pas de soucis de me donner un score négatif.
Déjà vu cette réponse et ce n'était pas un équivalent non-jquery de mon script de jQuery.
Pure JS:
function externalLinks() { for(var c = document.getElementsByTagName("a"), a = 0;a < c.length;a++) { var b = c[a]; b.getAttribute("href") && b.hostname !== location.hostname && (b.target = "_blank") } } ; externalLinks();
Les liens
code> éléments dans un document avec une valeur pour l'attribut href .
var links = document.links;
for(var i = 0; i < links.length; i++) {
if (links[i].hostname != window.location.hostname) {
links[i].target = '_blank';
}
}