根据url查询字符串设置和检查Javascript cookie

时间:2014-09-15 17:45:44

标签: javascript jquery cookies query-string url-parameters

我正在尝试在我的网站上设置系统,以便通过自定义链接的用户被标记为cookie,该Cookie会触发特定代码以替换注册表单的默认部分。在这个例子中,期望的结果是来到http://example.com/?=mylink1的人被标记为改变了"值的#c;属性在任何输入中,id为#xcode to" X190"。到目前为止我所拥有的:

从查询字符串创建cookie:

  function cookieQuery() {
            var url = window.location.href;
            if(url.indexOf('?' + mylink1) = 1)
                document.cookie="cookie1";
    }

使用Jquery检查cookie以及是否更改属性值,如果没有cookie,则不执行任何操作:

function readCookie(cookie1) {
    var nameEQ = cookie1 + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) 

            $("#xcode").attr("value","X190");
    }
    return null;
}   

我很感激任何帮助解决这个问题!

1 个答案:

答案 0 :(得分:1)

除非您需要在用户计算机上保留数据,否则您不需要使用Cookie,您可以单独使用url参数来更改表单。

//页面网址http:somewhere.com/index.html?foo = bar&amp; baz = boaz var url = window.location.href;

//This function puts all of the params into a js object
function getParams(u){
    var theURL = u; 
    var params = {}; 
    var splitURL = theURL.split('?'); 
    if (splitURL.length>1 ){ 
        var splitVars = splitURL[1].split('&'); 
        for(var i = 0; i < splitVars.length; i++){ 
            splitPair = splitVars[i].split('='); 
            params[splitPair[0]] = splitPair[1]; }

        return params;
    }
    return false;
}

params = getParams(url);

//Check if there are any params
if (params) {
    var foo = params.foo;
    //Use foo to make decision here
}