Kurzbeschreibung <br />In IE6 und 7 wird in einem allgemeinen a-Tag (einem in HTML geschriebenen und über DOM-Operationen in die Seite eingefügten a-Tag) der ursprüngliche Wert von href nicht direkt über a.getAttribute("href") abgerufen, wenn der Wert von href ein relativer Pfad ist. Der ursprüngliche Wert kann jedoch über a.getAttribute("href",2) abgerufen werden. Wenn dieser a-Tag jedoch über innerHTML eingefügt wird, kann der ursprüngliche href-Wert auch über a.getAttribute("href",2) nicht abgerufen werden. Es wird geschätzt, dass IE6 und 7 bei innerHTML='<a href="/haha">test</a>' eine Kompatibilitätsverarbeitung dafür durchführen und einige Dinge hinzufügen werden. Zu diesem Zeitpunkt ist das href von a bei der Anzeige durch outerHTML bereits die vollständige Adresse -_-! Es wird gesagt, dass eine ähnliche Situation im src von img auftreten wird. Code kopieren Der Code lautet wie folgt:<!doctype html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Prüfung</title> </Kopf> <Text> <a id="a" href="" onclick=".getAttribute(\"href\",2)">Test</a> </body> </html> Wenn Sie in IE6 oder 7 darauf klicken, wird ein großes „/haha“ angezeigt! ! ! Ich begann zu vermuten, dass da noch etwas anderes im Gange war. Zu diesem Zeitpunkt habe ich darüber nachgedacht, woher mein a-Tag stammt (stringbasierte JS-Vorlage, innerHTML) … Also habe ich es mit dem folgenden Code simuliert: Code kopieren Der Code lautet wie folgt:<!doctype html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Prüfung</title> </Kopf> <Text> <div id="test"></div> <Skript> document.getElementById("test").innerHTML = '<a id="a" href="/haha" onclick="alert(this.getAttribute(\'href\',2));return false;">test</a>'; </Skript> </body> </html> Nochmals getestet ... bei meiner Schwester ... das Problem ist wieder aufgetreten! Beim tatsächlichen Testen kann nach dem Generieren von a erneut setAttribute("href","/haha",2) und anschließend getAttribute("href",2) "/haha" zurückerhalten. Aber wenn Sie so etwas in einer Vorlage machen möchten, erscheint es Ihnen zu ekelhaft, also geben Sie entschieden auf! Es ist besser, auf Franks Rat zu hören ... Fügen Sie einfach ein Attribut hinzu, um die beiden Linkelemente zu identifizieren, und bleiben Sie nicht in der Routine stecken. Nochmal bohren-_-!: Code kopieren Der Code lautet wie folgt:<!doctype html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Prüfung</title> </Kopf> <Text> <div id="test"></div> <Skript> var test = document.getElementById("test"); var a = document.createElement("a"); var txt = document.createTextNode("test"); ein.href="/haha"; a.onclick=Funktion() { Alarm (dies.getAttribute ('href',2));//"/haha" gibt false zurück; }; a.appendChild(txt); test.appendChild(a); </Skript> </body> </html> Schließlich vermute ich, dass IE6 und 7 beim Einfügen von Knoten über innerHTML eine Art „Fehlertoleranz“-Verarbeitung durchführen, die sie für richtig halten … und dann lag ich falsch … |
<<: Schritte für IDEA zur Integration von Docker zur Realisierung einer Remote-Bereitstellung
>>: Eine kurze Analyse der Unterschiede zwischen Undo, Redo und Binlog in MySQL
Ⅰ. Problembeschreibung: Verwenden Sie HTML+CSS, u...
Die Verwendung von „Computed“ in vue3. Da vue3 mi...
Beginnen wir die Diskussion mit einer häufig gest...
Inhaltsverzeichnis 1. Steuern Sie die Anzeige und...
Einigen Eigenschaften in CSS geht ein "*&quo...
Normalerweise müssen wir uns bei der Projektentwic...
In diesem Artikelbeispiel wird der spezifische Co...
Ich habe zuvor einen Artikel über die Dateiübertr...
Erstens weiß ich nicht, warum ich mich über die B...
Textkürzung mit CSS Beachten Sie den folgenden Co...
In vertikaler Richtung können Sie die Ausrichtung...
Inhaltsverzeichnis Einführung Einführung Aggregat...
1. Änderungen in der Standard-Speicher-Engine von...
Inhaltsverzeichnis 1. Häufige Fehler von Anfänger...
Einführung in den Polling-Algorithmus Viele Leute...