Quel est le problème? Seulement dans Internet Explorer (surprise) mon code est exécuté incorrectement. La petite connerie de code ci-dessous devrait ajouter une action "onclick" à chaque balise "a". Cela fonctionne à merveille, mais regardez la cinquième ligne, il devrait définir le deuxième argument de la fonction à la valeur de l'attribut "href" de la balise d'ancrage. Dans WebKit, Mozilla etc. c'est bien. Si nous définissons "href" pour dire "lorem_ipsum" alors WebKit, Mozilla etc. récupèrent le résultat correct et définissons le second argument de la fonction sur "lorem_ipsum", Internet Explorer préfixe "http://www.some.site/" donc nous voyons "http://www.some.site/lorem_ipsum" comme second argument. Internet Explorer est incorrect car ce n'est pas l'attribut "href" de la valeur réelle de la balise d'ancrage.Préfixage indésirable des liens hypertexte Internet Explorer [Javascript]
Anchors=Parent.getElementsByTagName("a");
Anchor=0;
while(Anchor<Anchors.length){
Anchors[Anchor].onclick=function(){
Plot("",this.getAttribute("href"));
return false;
};
Anchor++;
};
Comment puis-je contourner ce problème absurde? Aurais-je besoin de décoller de la chaîne tout avant le dernier slash? Cela semble une approche longue et sinueuse! Des idées?
Merci pour la réponse rapide. Pourriez-vous s'il vous plaît expliquer votre réponse afin que je puisse voir pourquoi cela s'est passé et comment vous l'avez réparé. KR, Jay – Jay
location.href est une variable prédéfinie contenant l'URL de la fenêtre en cours. J'attrape l'attribut HREF du lien, et s'il contient cette valeur, je le sous-distrait pour le retirer. Simple. –
Je crois que cela ne fonctionnera pas si la page spécifie un tag BASE. Je crois que le problème où getAttribute (HREF) renvoie l'URL complète a été corrigé en mode standard IE8. http://msdn.microsoft.com/en-us/library/ms535173%28VS.85%29.aspx# – EricLaw