jQuery.param() の依存関係のない実装を探しています。jQuery を使用せずに、URL クエリ文字列または Ajax リクエストでの使用に適した、配列またはオブジェクトのシリアル化された表現を作成しようとしています。
しばらく検索しましたが、誰もが $.param() を使用しているようです...
前もって感謝します!
jQuery.param() の依存関係のない実装を探しています。jQuery を使用せずに、URL クエリ文字列または Ajax リクエストでの使用に適した、配列またはオブジェクトのシリアル化された表現を作成しようとしています。
しばらく検索しましたが、誰もが $.param() を使用しているようです...
前もって感謝します!
How to get query string values using JavaScriptで最善かつ最適な方法を見つけました。クエリ文字列を取得するには、以下の例を確認してください。
var queryString = window.location.search || '';
var keyValPairs = [];
var params = {};
queryString = queryString.substr(1);
if (queryString.length)
{
keyValPairs = queryString.split('&');
for (pairNum in keyValPairs)
{
var key = keyValPairs[pairNum].split('=')[0];
if (!key.length) continue;
if (typeof params[key] === 'undefined')
params[key] = [];
params[key].push(keyValPairs[pairNum].split('=')[1]);
}
}
上記スクリプトの使い方
//url=http://stackoverflow.com/how-to-get-query-string-values-in-javascript?query=123&list=default
params['query'];
//Output ["123"]
params['list'];
//Output ["default"]
//Note: If the query string value is empty the method will return the value as empty string.
javascriptを使用してクエリ文字列値を取得する必要がある場合
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
オブジェクトが次のような 1 次元配列の場合:
var params = { input1:x, input2:y, input3: z };
次に、単純な for ループでオブジェクトをシリアル化するトリックを実行できます
var vals = '';
for(var key in params){
vals += key + '=' + paramas[key];
}
空の .js ファイル (例: GetQueryString.js) を作成し、次のコードをコピーします。
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
var urlParams = {};
(function () {
var e,
a = /\+/g,
r = /([^&=]+)=?([^&]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.search.substring(1);
while (e = r.exec(q))
urlParams[d(e[1])] = d(e[2]);
})();
コードに GetQueryString.js ファイルを含める
<script type="text/javascript" src="~/GetQueryString.js" />
キーが次のような URL にある場合
キーは、次の呼び出しによって上記の URL から取得できます
var queryStringValue = getParameterByName("key");