2011-12-20 15 views
5

window.locationの "機能"をカスタムURLに提供する(ネイティブな)JavaScript APIはありますか?URL管理機能?

var url = new URL("http://stackoverflow.com/question?hello=world#foo"); 
console.log(url.hostname, url.path); 
// out: "stackoverflow.com", "/question" 
url.hash = "bar"; 
url.query = ""; 
console.log(url); 
// out: "http://stackoverflow.com/question#bar" 

私はかなりのネイティブAPIはないと確信しています(どんな理由であれ)。誰かがこれを実装した場合は、リンクを共有してください。

+0

可能重複http://stackoverflow.com/questions/736513/how-do-i-ホスト名とパスワインのjavascriptへの変換) – Cameron

+0

@Cameron質問は似ているかもしれませんが、私がリンクしているライブラリはそこにはありません(そして他の解決策もあります)。 – deviousdodo

+0

@draevor:そうですね、両方を保つのが最善かもしれません。 – Cameron

答えて

3

答えははいといいえです。

答えが示唆するように、アンカー要素を作成してそれを使って解析を行うことができます。これは基本的にはネイティブコードです。

var url = document.createElement("A"); 
url.href = "http://stackoverflow.com/question?hello=world#foo"; 

console.log('// expected: "stackoverflow.com", "/question"'); 
console.log('//  got: "' + url.hostname + '", "' + url.pathname + '"'); 
output -->   got: "stackoverflow.com", "/question" 

url.hash = "bar"; 
url.search = ""; 

console.log('// expected: "http://stackoverflow.com/question#bar"'); 
console.log('//  got: "' + url.href + '"'); 
output -->   got: "http://stackoverflow.com/question?#bar" 

ライブデモ:http://jsfiddle.net/roberkules/H48dt/

唯一の違いは、こと、ありますか?は、クエリ文字列が空になった後で削除されません。

"API":URLを操作するための有用なAPIはありませんでしたので、私は自分自身を一つ建て

url.protocol 
url.host 
url.port 
url.pathname 
url.search 
url.hash 
+0

それは可能だった、わかりませんでした。 (しかし、あまり助けにはならない) – rodneyrehm

2

URI.js

これは、jQueryのようなAPIを使用してURLのコンポーネントを読み書きすることができます。また、クエリ文字列の操作、URLの正規化、相対/絶対パスの作成に便利な機能もあります。

メリークリスマス、楽しみ:)

[私はJavaScriptでホスト名とパスにURLを解析する方法を教えてください](の
関連する問題