0

jsを使用してURLハッシュの一部を取得するにはどうすればよいですか?

ここに私が持っているものがあります:

something.html?il=#/new/product/123

そして、変数として「123」を取得する必要があります...

*** ライブラリはありません。純粋な JavaScript を使用してください。

何か案は?

4

3 に答える 3

4

これがあなたを助けるはずのJavascriptです。getQuerystringNameValue() 関数から戻り値を取得し、 $("#textboxID").val(returnValue); を使用するだけです。テキストボックスに割り当てます。

alert("name1" + " = " + getQuerystringNameValue("name1"));
alert("name2" + " = " + getQuerystringNameValue("name2"));
alert("name3" + " = " + getQuerystringNameValue("name3"));


function getQuerystringNameValue(name)
{
    // For example... passing a name parameter of "name1" will return a value of "100", etc.
    // page.htm?name1=100&name2=101&name3=102

    var winURL = window.location.href;
    var queryStringArray = winURL.split("?");
    var queryStringParamArray = queryStringArray[1].split("&");
    var nameValue = null;

    for ( var i=0; i<queryStringParamArray.length; i++ )
    {           
        queryStringNameValueArray = queryStringParamArray[i].split("=");

        if ( name == queryStringNameValueArray[0] )
        {
            nameValue = queryStringNameValueArray[1];
        }                       
    }

    return nameValue;
}
于 2013-04-16T20:36:47.027 に答える
3

クエリ文字列ではなく、ハッシュが必要です。# の後のものは、URL のハッシュと呼ばれます。

document.location.hash を使用してその文字列を解析できます

var id = document.location.hash.split("/"); //convert the hash into an array, splitting with "/"
id = id.pop(); //pop will get the last item on the array

この方法は読みやすく簡単ですが、検索している文字列が常に配列の最後であると想定するのは安全ではありません。正規表現を使用して、可能性をさらに絞り込むことができます

var hash = document.location.hash,
    re = /\/new\/product\/(d+)/,
    id = hash.match(re);// for some reason this matches both the full string and the number
id = id.pop(); // so I must do this again
于 2013-04-16T20:19:55.407 に答える
2

JavaScript ではdocument.location.search、クエリ パラメータが含まれます。正規表現を使用して、必要な部分を解析できます。ただし、例の URL では、クエリ文字列ではなく、 にあるアンカーdocument.location.hashです。

于 2013-04-16T20:18:36.907 に答える