Maison  >  Article  >  interface Web  >  Problème de BUG de href sous l'échange IE_Experience

Problème de BUG de href sous l'échange IE_Experience

WBOY
WBOYoriginal
2016-05-16 12:04:031622parcourir
Copier le code Le code est le suivant :

;script type ="text/javascript">
(function(){
var test = document.getElementById('test');
alert(test.innerHTML);

var result = document.getElementById('result');
result.innerHTML = test.innerHTML;
alert(result.innerHTML)
})(); >

En conséquence, vous constaterez que la valeur href de l'élément A dans result.innerHTML qui apparaît pour la deuxième fois dans les navigateurs IE6 et IE7 devient un chemin absolu.
En fait, nos ancêtres rencontrent ces problèmes depuis longtemps (merci à Oncle Yu pour l'information) :


《getAttribute(”HREF”) est toujours absolu》


  • 《getAttribute href bug》 La solution a été évoquée dans l'article ci-dessus, qui consiste à utiliser la méthode getAttribute('href', 2) sous IE. Microsoft a étendu cette méthode avec un deuxième paramètre qui peut être défini sur 0, 1 ou 2. S'il est défini sur 2, la valeur d'origine de la propriété est renvoyée.
  • Le script est corrigé en :
    Copier le code

    Le code est le suivant : (function(){ var test = document.getElementById('test'); alert(test.innerHTML); var result = document.getElementById('result');
    result. innerHTML = test.innerHTML ;
    if(/*@cc_on!@*/0 ) { //if ie
    var links1 = test.getElementsByTagName('a'); ('a') ;
    for(var i = 0, len = links1.length; i < len; ++i ) {
    links2[i].href = links1[i].getAttribute(' href', 2) ;
    }
    }
    alert(result.innerHTML);
    })();


    En cherchant ce problème, j'ai également cherché pour celui découvert par Hedger Wang Un problème de BUG intéressant : lors de la réinitialisation de la nouvelle valeur de l'attribut href dans IE, si le texte du lien contient "http://" ou "@", son innerHTML ne s'affichera pas correctement et s'affichera comme l'ensemble attribut href.
    Solution (sHref est la nouvelle valeur de href à définir) :



    Copiez le code


    Le code est le suivant : ;
    Détails :

    《Internet Explorer peut réinitialiser incorrectement le innerHTML d'Anchor lorsqu'un nouveau « href » est attribué》



  • Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn