JavaScriptの相対URLの解決
-
30-09-2019 - |
質問
フォーム[アクション]と[href]値を調べ、それらを絶対URLに解決するという要件があるJSライブラリを構築しています。
たとえば、私はオンです http:// a/b/c/d; p?q そして、 "../g"のhref値に遭遇します(ないと仮定しますu003Cbase>エレメント)。結果の絶対は次のとおりです。 http:// a/b/g.
すでにこれを行っているJSライブラリはありますか?私はそう信じなければなりません。
必要なものの詳細については、仕様:http://tools.ietf.org/html/rfc3986#section-5.4
解決
それは .href
A属性の属性(そうではありません .getAttribute('href')
, 、 しかし .href
)解決された(絶対)URLを返します。
他のヒント
最新のブラウザでは、組み込みのURLコンストラクターがこれを処理します。
u = (new URL("?newSearch",
"http://a.example/with/a/long/path.file?search#fragment")).href
(利回り http://a.example/with/a/long/path.file?newSearch
)
ベースを現在のドキュメントに関連させたい場合は、それを明示的に行うことができます。
u = (new URL("?newSearch", document.location)).href
URL
また、すべてのURLコンポーネント(プロトコル、ホスト、パス、検索、ハッシュなど)にアクセスできます。
DOMなしで機能する素敵な純粋なJSソリューション: https://gist.github.com/1088850 (どこでも機能しますが、特にサーバー側のJSに役立ちます)。
所属していません StackOverflow