javascriptでURLパラメータを取得する
http://exampl.com/search.html#q=foobar;page=10みたいなurlの#以降を解析して{q:foobar, page:10}なオブジェクトとして返す。昔Yahoo!USの検索API使ってjavascriptだけではてブ検索作ったときに使っていた。
/* * * UrlParams * SYNOPSIS: window.onload = function() { var params = UrlParams.parse(); var result = document.getElementById("result"); var text = ""; for (p in params) { text += "{" + p + ": " + params[p] + "}, "; } result.innerHTML = text; UrlParams.update("this_file.html", {a: 1, b: 2}); } */ UrlParams = { separator: { params: ";", keyvalue: "=" }, parse: function() { var parts = location.href.split("#"); var params = {}; if (parts.length == 2) { var values = parts[1].split(this.separator.params); var kv; for (var i = 0, length = values.length; i < length; i++) { kv = values[i].split(this.separator.keyvalue); if (kv.length == 2) { params["" + kv[0]] = "" + decodeURI(kv[1]); log(" " + kv[0] + ": " + decodeURI(kv[1])); } } } return params; }, update: function(file_name, params) { var parts = location.href.split("#"); var concated_params = "#"; if (parts[0].match(file_name)) { for (var p in params) { concated_params += p + this.separator.keyvalue + encodeURI(params[p]) + this.separator.params; } location.href = parts[0] + concated_params; } } };