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';
}
}