2014-12-19 87 views
0

谁能帮我建立,可以通过检查该链接的用户点击,然后将其重定向到该链接并为它创建一个cookie,因此下一次用户需要用户输入一个cookie功能他们自动获得重定向。上创建并保存的cookies的onclick

谁能告诉我什么我做错了。我想要多个链接并点击每个链接应该创建一个cookie并重定向用户。

任何人都可以提供一个工作的jsfiddle请。

的代码如下,请帮助:

//Html 
    <a href="" onClick="redirectOne('/home')">something site</a> 
    <a href="" onClick="redirectTwo('/home')">something2 site</a> 
    // Javascript 
    function redirectOne(state) 
    { 
    createCookie('state', state, 90); 
    window.location.href = "www.something1.com" + state; 
    } 

    function redirectTwo(state) 
    { 
    createCookie('state', state, 90); 
    window.location.href = "www.something2.com" + state; 
    } 

    var cookie = readCookie('state'); 
    if (cookie != null) 
    { 
    window.location.href = "www.something.com" + cookie; 
    } 

function createCookie(name,value,days) { 
if (days) 
    { 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    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) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 
+0

什么是你的代码错误?你有任何错误信息? – fxm 2014-12-19 10:07:44

+0

的问题是,无论什么链接都没有我点击它一直保存“www.somethingOne.com”饼干。即使我点击somethingTwo链接,它仍然可以保存一些cookie,然后我重定向到那里。 – Skywalker 2014-12-19 10:13:38

+0

这是代码给你麻烦吗?我无法理解您的Cookie如何使用。最重要的是,在你的代码片段,他们总是设置为与'redirectOne'相同的值和'redirectTwo' – fxm 2014-12-19 10:19:03

回答

1

你的问题是,当你调用这条线在每个功能

createCookie('state', state, 90); 

它从onClick事件采取“/家”的价值并将其传递给cookie创建例程。你应该为这两个函数传递'/ home'以外的东西。

<a href="" onClick="redirectOne("www.something1.com")">something site</a> 
    <a href="" onClick="redirectOne("www.something2.com")">something2 site</a> 
    // Javascript 
    function redirectOne(state) 
    { 
    createCookie('state', state, 90); 
    window.location.href = state+'/home'; 
    } 

根本不需要redirectTwo功能。