英文: a 链接标记 dh 下会自动补全 href.
Während ich am AJAX -Link -Tracker und am Mapsurface arbeitet, bin ich auf eine Inkonsistenz gestoßen, wie das HREF -Attribut mit DOM -Scripting abgerufen wird.Das HREF -Attribut unterscheidet sich von anderen Elementattributen, da der Wertsatz relativ zum Kontext der Seiten -URL sein kann. Wenn Sie einen Link mit einem relativen HREF -Attribut festlegen
<a href = ../Entwicklung/test1.html> Testseite </a>
Der Browser untersucht die aktuelle URL der Seiten und leitet 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 und andere geben die abgeleitete absolute URL zurück. Die Ergebnisse unterscheiden sich auch nach der Methode, mit der Sie das HREF -Attribut abrufen. Es gibt drei allgemeine Möglichkeiten, auf ein Attribut zuzugreifen:
linkobj.href; linkobj ['href']; linkObj.getAttribute ('href');
Die linkobj.href und linkobj['href ']; Methoden zum Zugriff auf das Attribut geben konsequent die abgeleitete Absolute -URL zurück.
Microsoft hat versucht, dies durch Problem mit dem Hinzufügen eines zweiten Parameters zur GetArttribute -Methode zu beheben. Der zweite Parameter kann auf 0,1 oder 2 eingestellt werden. Wenn der Parameter auf 2 eingestellt ist. Die Methode gibt den Attributtext zurück. Jede andere Einstellung gibt die abgeleitete absolute URL zurück.
linkObj.getAttribute ('href'); linkObj.getAttribute ('href', 2);
Absolute URL
Was sollte also durch die GetAttribute -Methode zurückgegeben werden? Die Kernspezifikation der W3C DOM Level 2, in der die Struktur der GetArttribute -Methode festgelegt wird, behandelt dieses Problem nicht. Es ist nicht so, dass der Ansatz falsch oder richtig ist. In diesem Punkt ist die Spezifikation für die Interpretation offen.
Als Codierer möchte ich in der Lage sein, auf beide Werte zugreifen zu können. Die DOM -Kernspezifikation sollte aktualisiert werden, um das Problem anzugehen.
Vorläufig verwende ich die alte Objekt -Objekt -Immobilienmethode linkobj.href , um abgeleitete absolute URLs zurückzugeben. Es liefert die beständigsten Ergebnisse in allen Browsern. URLs von Interesse
Wie üblich, als ich diesen Beitrag beendet habe, fand ich diesen Fehlerbericht auf der QuickMode -Site, auf der das gleiche Thema erörtert wird.
Getattribute href ist immer absolut.html