How to strip out a url variable

前端 未结 5 2000

I have a url.LoginID, and I\'d like to remove it from the address bar when the user clicks on the link to login. It has to be a bookmark, it can\'t be a form submit.

<
5条回答
  •  生来不讨喜
    2020-12-10 20:18

    As usual, there's already a UDF that someone has written available on CFLIB: queryStringDeleteVar

    You can then do like so

    
    

    CGI.QUERY_STRING is actually the default for the second arg, so this will work just as well

    
    

    Here's the code for queryStringDeleteVar:

    
    /**
     * Deletes a var from a query string.
     * Idea for multiple args from Michael Stephenson (michael.stephenson@adtran.com)
     * 
     * @param variable      A variable, or a list of variables, to delete from the query string. 
     * @param qs      Query string to modify. Defaults to CGI.QUERY_STRING. 
     * @return Returns a string. 
     * @author Nathan Dintenfass (michael.stephenson@adtran.comnathan@changemedia.com) 
     * @version 1.1, February 24, 2002 
     */
    function queryStringDeleteVar(variable){
        //var to hold the final string
        var string = "";
        //vars for use in the loop, so we don't have to evaluate lists and arrays more than once
        var ii = 1;
        var thisVar = "";
        var thisIndex = "";
        var array = "";
        //if there is a second argument, use that as the query string, otherwise default to cgi.query_string
        var qs = cgi.query_string;
        if(arrayLen(arguments) GT 1)
            qs = arguments[2];
        //put the query string into an array for easier looping
        array = listToArray(qs,"&");        
        //now, loop over the array and rebuild the string
        for(ii = 1; ii lte arrayLen(array); ii = ii + 1){
            thisIndex = array[ii];
            thisVar = listFirst(thisIndex,"=");
            //if this is the var, edit it to the value, otherwise, just append
            if(not listFind(variable,thisVar))
                string = listAppend(string,thisIndex,"&");
        }
        //return the string
        return string;
    }
    
    

提交回复
热议问题