我正在尝试在我的网站上设置系统,以便通过自定义链接的用户被标记为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;
}
我很感激任何帮助解决这个问题!
答案 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
}