これを使って:
var hash_array = location.hash.substring(1).split('&');
var hash_key_val = new Array(hash_array.length);
for (var i = 0; i < hash_array.length; i++) {
hash_key_val[i] = hash_array[i].split('=');
}
これhash_key_val[index]
は2要素の配列で、最初の要素はキー(パラメーター名)で、2番目の要素は対応する値です。
編集:
このケースをしばらく研究した後、私はこれを書き直す必要があると感じました-配列の配列の代わりにオブジェクトを返します。バラフィは以前にそれをやったことがありますが、直感に反し、肥大化した使用法であるという私の答えには耐えられません。フィドルの完全な例。ここでの関数ソース:
function getParameters(location) {
if (typeof location === 'undefined') {
location = window.location;
}
var hashParams = new (function Params() {})();
if (location.hash.length === 0) {
return hashParams;
};
var hashArray = location.hash.substring(1).split('&');
for (var i in hashArray) {
var keyValPair = hashArray[i].split('=');
hashParams[keyValPair[0]] = keyValPair[1];
}
return hashParams;
}