Deutsch: Ein Link-Tag vervollständigt href im IE automatisch

Deutsch: Ein Link-Tag vervollständigt href im IE automatisch IE linkobj.href; x IE linkobj.getAttribute('href'); x IE linkobj.getAttribute('href',2); x Gecko linkobj.href; x Gecko linkobj.getAttribute('href'); x Gecko linkobj.getAttribute('href',2);x Opera linkobj.href; x Opera linkobj.getAttribute('href'); x Opera linkobj.getAttribute('href',2); xAttribut-Testseite abrufen. Test auf IE6, Firefox 1.5 und Opera 8.51.
Was also soll von der Methode getAttribute zurückgegeben werden? Die W3C DOM Level 2 Core-Spezifikation, die die Struktur der Methode getAttribute festlegt, behandelt dieses Problem nicht. Es ist nicht so, dass einer der beiden Ansätze falsch oder richtig wäre. In diesem Punkt ist die Spezifikation offen für Interpretationen.
Als Programmierer möchte ich auf beide Werte zugreifen können. Die DOM Core-Spezifikation sollte aktualisiert werden, um das Problem zu beheben.
Nach einem wirklich guten Austausch mit Jim in den Kommentaren unten muss ich mich korrigieren. In der Spezifikation steht, dass getAttribute den Attributwert zurückgeben soll, nicht die absolute URL. Der Ansatz von Microsoft ist falsch.
Zurzeit verwende ich die altmodische Objekt-Eigenschaftsmethode linkobj.href , um abgeleitete absolute URLs zurückzugeben. Sie liefert die konsistentesten Ergebnisse in allen Browsern. Interessante URLs
W3C REC DOM Level 2 Kernspezifikation für getAttribute
Gecko-Dokumentation für getAttribute
Microsoft-Dokumentation für getAttribute
Wie üblich fand ich, als ich gerade diesen Beitrag fertigstellte, diesen Fehlerbericht auf der QuickMode-Site, in dem dasselbe Thema behandelt wird.
getAttribute HREF ist immer absolute.html

Englisch: Ein Link-Tag vervollständigt href im IE automatisch.
Während ich am Ajax Link Tracker und MapSurface gearbeitet habe, bin ich auf eine Inkonsistenz beim Abrufen des href-Attributs mithilfe von DOM-Scripting gestoßen.
Das href-Attribut unterscheidet sich von anderen Elementattributen darin, dass der Wertesatz relativ zum Kontext der Seiten-URL sein kann. Wenn Sie einen Link mit einem relativen href-Attribut festlegen
<a href="../development/test1.html">Testseite</a>
Der Browser prüft die aktuelle URL der Seite und leitet daraus eine absolute URL für den Link ab.
http://www.glenn.jones.net/development/test1.html
Dies ist die Wurzel des Problems. Einige Browser geben den Text des Attributs zurück, andere die abgeleitete absolute URL. Die Ergebnisse unterscheiden sich auch je nach der Methode, die Sie zum Abrufen des href-Attributs verwenden. Es gibt drei gängige Möglichkeiten, auf ein Attribut zuzugreifen:
linkobj.href; linkobj['href']; linkobj.getAttribute('href');
Die Methoden linkobj.href und linkobj['href']; zum Zugriff auf das Attribut geben durchgängig die abgeleitete absolute URL zurück.
Microsoft hat versucht, dieses Problem zu lösen , indem der Methode getAttribute ein zweiter Parameter hinzugefügt wurde. Der zweite Parameter kann auf 0, 1 oder 2 gesetzt werden. Wenn der Parameter auf 2 gesetzt ist, gibt die Methode den Attributtext zurück. Bei jeder anderen Einstellung wird die abgeleitete absolute URL zurückgegeben.
linkobj.getAttribute('href'); linkobj.getAttribute('href',2);
Abgeleitet
Absolute URL
Attributtext

<<:  Verwendung der MySQL DATE_FORMAT-Funktion

>>:  So erstellen Sie eine virtuelle Maschine mit Vagrant+VirtualBox

Artikel empfehlen

Zusammenfassung der Merkmale des SQL-Modus in MySQL

Vorwort Der SQL-Modus wirkt sich auf die von MySQ...

Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

1. Adresse herunterladen https://dev.mysql.com/do...

jQuery implementiert gleitende Registerkarte

In diesem Artikelbeispiel wird der spezifische Co...

Lösung zur Schnittstellenverformung beim Einstellen der Frameset-Höhe

Derzeit habe ich ein Projekt erstellt, die Schnitt...

Einführung in den strikten Modus von JavaScript verwenden Sie strikt

Inhaltsverzeichnis 1. Übersicht 1.1 Was ist der s...

Problemlösungsvorgänge für Alpine Docker-Bildschriftarten

1. Führen Sie Schriftarten aus, öffnen Sie den Sc...

Detaillierte Erläuterung des Docker-Visualisierungsgrafiktools Portainer

Inhaltsverzeichnis 1. Einführung in Portainer 2. ...

Vier Möglichkeiten zum Erstellen von Objekten in JS

Inhaltsverzeichnis 1. Objekte durch Literalwert e...

Informationen zum Textumbruchproblem bei IE-Labels (LI)

Ich habe lange damit gekämpft und nach einiger Suc...

Beispiel für die reguläre Umschreibmethode für Nginx Rewrite (Matching)

Die Rewrite-Funktion von Nginx unterstützt regelm...

Design-Story: Der Wachmann, der sich Nummernschilder nicht merken kann

<br />Um die Fahrzeuge zu regeln, die in die...