2014-12-19 70 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功能。