;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)
})();
Als Ergebnis werden Sie feststellen, dass der href-Wert des A-Elements in result.innerHTML, das zum zweiten Mal in IE6- und IE7-Browsern angezeigt wird, zu einem absoluten Pfad wird.
Tatsächlich sind unsere Vorfahren schon seit langem mit diesen Problemen konfrontiert (danke an Onkel Yu für die Informationen):
《getAttribute(“HREF”) ist immer absolut》
《getAttribute href bug》
Die Lösung wurde im obigen Artikel erwähnt, nämlich die Verwendung der Methode getAttribute(‘href’, 2) unter IE. Microsoft hat diese Methode um einen zweiten Parameter erweitert, der auf 0, 1 oder 2 gesetzt werden kann. Bei der Einstellung 2 wird der ursprüngliche Wert der Eigenschaft zurückgegeben. Das Skript wurde wie folgt korrigiert:
Code kopierenalert(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);
Bei der Suche nach diesem Problem, Ich habe auch nach Hedger Wang gesucht. Ein interessantes BUG-Problem: Wenn der Linktext beim Zurücksetzen des neuen href-Attributwerts „http://“ oder „@“ enthält, wird sein innerHTML falsch angezeigt und als festgelegter href angezeigt Attribut.
Lösung (sHref ist der neu festzulegende Wert von href):
Kopieren Sie den Code
Der Code lautet wie folgt:
Details:
《Internet Explorer setzt das innerHTML von Anchor möglicherweise falsch zurück, wenn ein neues „href“ zugewiesen wird》