-1

次のような URL になります。

http://website/index.html?id=1234&type=something

渡される ID とタイプは、ユーザーが相手側で何をするかによって異なります。

Javascript を使用して、次のように変数として使用される ID と型を取得したいと考えています。

var theID = 1234
var theType = something

しかし、これらの値を URL から取得して上記のように値を設定する方法がわかりません。これどうやってするの?

4

2 に答える 2

2

これを試して

function qs(url, key) {
    var vars = [], hash;
    var hashes = url.slice(url.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[key];
}

var url = YourUrl;
alert(qs(url,'id'));

デモ

于 2013-10-31T14:36:33.150 に答える
1

私のユーティリティ関数は、少し汚れていますが、仕事を成し遂げます。いくつかの indexOf 関数だけで配列を分割する必要はありません。utf8 でデコードされた値が必要な場合は、decodeURIComponent(str) を使用するか、iso1 レガシー デコードを使用して、decodeURI(str) を使用します。

// parse parameter value from url (case sensitive)
function getURLParam(strURL, strKey) {
   // http://mywebapp/do.url?key1=val1&key2=val2
   var idx = strURL.indexOf('?');
   if (idx < 0) return ""; // no params

   // "&key1=val1&key2=val2&"
   strURL = "&" + strURL.substring(idx+1) + "&";
   idx = strURL.indexOf("&" + strKey + "=");
   if (idx < 0) return ""; // param not found

   // "&key1=val1&key2=val2&" -> "val1&key2=val2&" -> "val1"
   strURL = strURL.substring(idx + strKey.length + 2);
   idx = strURL.indexOf("&");    
   return strURL.substring(0, idx);
}
于 2013-10-31T14:38:28.593 に答える