web-dev-qa-db-ja.com

JavaScriptで新しいLocationオブジェクトを作成する

JavaScriptで新しいLocationオブジェクトを作成することは可能ですか?文字列としてurlがあり、javascriptが既に提供しているものを活用して、そのさまざまな部分にアクセスしたいと思います。

これが私が話していることの例です(これが機能しないことはわかっています)。

var url = new window.location("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;
// etc etc

このようなことは可能ですか、私は本質的に自分でこのオブジェクトを作成する必要がありますか?

66
Josh Johnson

アンカー要素を使用して、URL部分を抽出できます。次に例を示します。

var url = document.createElement('a');
url.href = "http://www.example.com/some/path?name=value#anchor";
var protocol = url.protocol;
var hash = url.hash;

alert('protocol: ' + protocol);
alert('hash: ' + hash);
​

これは、最新のすべてのブラウザーで動作し、IE 5.5+。

例を確認してください here

119
CMS

標準の RLオブジェクト を使用してはどうですか?

var url = new URL("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;

警告:このインターフェースは少し新しいので、 transpiler を使用していない場合は、- 互換性テーブル そして、ターゲットブラウザでテストを行います。

26

アンカー要素の力を活用できます

var aLink = document.createElement("a");
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf";
alert(aLink.pathname);
9
epascarello