Sunday, October 23, 2011

JavaScript: Get URL Query Argument

Often I have the need to parse the URL query to retrieve the value of a specific named argument. There is no direct way of doing this is JavaScript, so this requires a custom function.


function findQueryArgument (strQuery, strArgumentName) {

    // Valid query?
    if (strQuery) {

        // Split the parameteres
        var arrParameters = strQuery.split("&");

        // Walk through the parameters
        for (var i = 0; i < arrParameters.length; i++) {
            // Get the key/value pair
            var arrPair = arrParameters[i].split("=");

            // Is this the event argument?
            if (arrPair[0] == strArgumentName) {
                // Has value?
                if (arrPair.length > 1) {
                    // Get the value
                    return arrPair[1];
                }

                // Not set
                break;
            }
        }
    }

    // Not found
    return '';
}

The strQuery argument is the full URL query i.e. a=val1&b=val2 etc. The full URL should not be included.
strArgumentName is the name of the argument you're looking for, i.e. a or b.

Please notice that the returned value is URL encoded. To extract the actual string value you need to use the built in JavaScript method unescape.

Here is an example:

// Query string
var strQuery = 'a=val1&b=val2';

// Get the value of the 'b' argument
var strEscaped = findQueryArgument(findQueryArgument, strQuery, 'b');

// Get the unescaped value
var strUnescaped = unescape(strEscaped);

// Display the value
alert(strUnescaped);
Olá! Se você ainda não assinou, assine nosso RSS feed e receba nossas atualizações por email, ou siga nos no Twitter.
Nome: Email:

0 kommentarer:

Post a Comment