Mach3.laBlog

細かすぎて伝わらないjQuery拡張 (13) “$.parseURL” – Advent Calendar 2016

$.parseURL() は、URLをホスト名やサーチ文字列・ハッシュなどにパースしてくれる関数です。

$.parseURL(url)

使い方

$.parseURL("https://www.example.com:8080/foo/bar?foo=bar#hash");
/*
    => {
        hash: "#hash",
        host: "www.example.com:8080",
        hostname: "www.example.com",
        href: "https://www.example.com:8080/foo/bar?foo=bar#hash",
        origin: "https://www.example.com:8080",
        pathname: "/foo/bar",
        port: "8080",
        protocol: "https:",
        search: "?foo=bar"
    }
*/

キーはLocationオブジェクトのそれに則っています。
というより、それらをそのままコピーしています。

コード

$.parseURL = function(url){
    var a, r = {};
    a = document.createElement("a");
    a.href = url;
    [
        "hash",
        "host",
        "hostname",
        "href",
        "origin",
        "pathname",
        "port",
        "protocol",
        "search"
    ].forEach(function(name){
        r[name] = a[name];
    });
    return r;
};

“a” 要素にhrefを設定してやると自動的にパースしてくれちゃうので、
それをそのまま利用しているだけのコードです。
なんなら生成した “a” 要素をそのまま返してしまっても良いと思いますが、
余計なプロパティが色々ぶら下がっているので分別して別オブジェクトに格納して返しています。

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*