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

Einführung in gängige XHTML-Tags

<br />Ich habe festgestellt, dass viele Leut...

Einführung in Spark und Vergleich mit Hadoop

Inhaltsverzeichnis 1. Spark vs. Hadoop 1.1 Nachte...

MySQL 4-Methoden zum Importieren von Daten

1. MySQL-Befehl importieren Die Importsyntax des ...

Versteckter Overhead von Unix/Linux-Forks

Inhaltsverzeichnis 1. Der Ursprung der Gabel 2. F...

So verwenden Sie Docker zum lokalen Verpacken und Bereitstellen von Images

Erste Verwendung von Docker zum lokalen Verpacken...

Implementierung einer coolen 3D-Würfeltransformationsanimation in CSS3

Ich liebe das Programmieren, es macht mich glückl...

Implementierung der Formatierung von Partitionen und der Einbindung in Centos7

Unter Linux treten häufig Situationen auf, in den...

CentOS7 verwendet RPM-Paket zur Installation von MySQL 5.7.18

veranschaulichen Dieser Artikel wurde am 20.05.20...

SSH-Schlüsselpaare von einer oder mehreren Linux-Instanzen trennen

Schlüsselpaar trennen Trennen Sie SSH-Schlüsselpa...

Beispielcode zum Ändern der Farbe eines PNG-Bildes durch einen CSS3-Filter

Diese Methode verwendet den filter in CSS3 drop-s...

Flex-Anordnung in CSS darstellen (Layouttool)

In Bezug auf die Anzeige: flexibles Layout: Manch...