Es gibt eine Eigenschaft des integrierten window.location
Objekts, die diese für das aktuelle Fenster bereitstellt.
// If URL is http://www.somedomain.com/account/search?filter=a#top
window.location.pathname // /account/search
// For reference:
window.location.host // www.somedomain.com (includes port if there is one)
window.location.hostname // www.somedomain.com
window.location.hash // #top
window.location.href // http://www.somedomain.com/account/search?filter=a#top
window.location.port // (empty string)
window.location.protocol // http:
window.location.search // ?filter=a
Aktualisieren Sie, verwenden Sie die gleichen Eigenschaften für jede URL:
Es stellt sich heraus, dass dieses Schema als Schnittstelle namens URLUtils standardisiert wird , und wissen Sie was? Sowohl das vorhandene window.location
Objekt als auch die Ankerelemente implementieren die Schnittstelle.
Sie können also für jede URL dieselben Eigenschaften wie oben verwenden. Erstellen Sie einfach einen Anker mit der URL und greifen Sie auf die Eigenschaften zu:
var el = document.createElement('a');
el.href = "http://www.somedomain.com/account/search?filter=a#top";
el.host // www.somedomain.com (includes port if there is one[1])
el.hostname // www.somedomain.com
el.hash // #top
el.href // http://www.somedomain.com/account/search?filter=a#top
el.pathname // /account/search
el.port // (port if there is one[1])
el.protocol // http:
el.search // ?filter=a
[1]: Die Browserunterstützung für die Eigenschaften, die den Port enthalten, ist nicht konsistent. Siehe: http://jessepollak.me/chrome-was-wrong-ie-was-right
Dies funktioniert in den neuesten Versionen von Chrome und Firefox . Ich habe keine Versionen von Internet Explorer zum Testen. Testen Sie sich daher anhand des JSFiddle-Beispiels.
Es gibt auch ein URL
Objekt, das diese Unterstützung für URLs selbst ohne das Ankerelement bietet. Es sieht so aus, als ob derzeit keine stabilen Browser dies unterstützen, aber es wird gesagt, dass es in Firefox 26 verfügbar ist. Wenn Sie glauben, dass Sie Unterstützung dafür haben, probieren Sie es hier aus .