Frage

Ich baue eine JS-Bibliothek, die eine Anforderung des Betrachtens Form hat [Aktion] und einem [href] Werte und lösen sie in absolute URLs.

Zum Beispiel bin ich auf http: // a / b / c / d; p q und ein href Wert von „../g“ begegnen (davon ausgehen, gibt es kein -Element). Die resultierende absolute wäre: http:. // a / b / g

Gibt es eine JS-Bibliothek, die dies bereits tut? Ich würde so glauben haben.

Für weitere Informationen über das, was gebraucht wird, die Spezifikation: http://tools.ietf.org/html/rfc3986#section-5.4

War es hilfreich?

Lösung

Es stellt sich heraus, dass das .href Attribut eines A-Element (nicht .getAttribute('href'), aber .href) gibt die aufgelöste (absolute) URL.

Andere Tipps

In modernen Browsern, die eingebaute URL Konstruktor Griffe folgt aus:

u = (new URL("?newSearch",
             "http://a.example/with/a/long/path.file?search#fragment")).href

(Ausbeuten http://a.example/with/a/long/path.file?newSearch)

Wenn Sie die Basis wollen auf das aktuelle Dokument relativ zu sein, können Sie das explizit tun:

u = (new URL("?newSearch", document.location)).href

Das URL Objekt können Sie auch auf alle der URL-Komponenten zugreifen (Protokoll, Host, Pfad, Suche, Hash-usw.).

Nizza reine JS Lösung, die funktioniert ohne DOM: https://gist.github.com/1088850 (funktioniert überall, aber besonders nützlich für die Server-Seite JS).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top