以下の関数は、引数無しで呼ぶとページのURLパラメータを返す。引数にパラメータの文字列を入れると、それを分割して返す。
XMLHttpRequestとか使う時に、request.responseURL.slice(request.responseURL.indexOf("?"))みたいなのを引き数に渡すと、リクエストした際のパラメータを取り出すことができる。ま、どっかにメモっとけばいいだけという話なのだけど。
戻り値はオブジェクトに格納されるので、forとかで回したり、必用な値だけキーで取り出したりできる。
あんまり詳しく動作確認してない。
function getURLparameterStrings(url) {
if (url === void 0) {
url = window.location.search;
}
let result = [];
if (1 < url.length && url.substr(0, 1) === "?") {
let query = url.substring(1);
let params = query.split('&');
for (let i = 0; i < params.length; i++) {
let element = params[i].split('=');
let paramName = decodeURIComponent(element[0]);
let paramValue = decodeURIComponent(element[1]);
if (element.length == 1) {
result[paramName] = void 0;
} else if (element.length == 2) {
result[paramName] = paramValue;
}
}
}
return (result);
}
fix(2017/08/26)
パラメータのないキーに"undefined"の文字列が入る問題を修正。
0 件のコメント:
コメントを投稿