2015-07-06 40 views
0

我試圖創建一個輸入,將您導航到以輸入值命名的目錄。這部分工作,但我需要將其存儲在cookie中,並在用戶返回頁面時重定向用戶。到目前爲止,我有這樣的:將變量設置爲cookie值並重定向

function sendanswer(e) { 
    if (e.keyCode === 13) { 
    e.preventDefault(); 
    var answer = document.answerarea.input.value; 

    if (answer) { 
     window.location.href = answer; 
     //SET COOKIE WITH NAME redirectPath 
     document.cookie = "redirectPath=" + answer; 
    } 
    } 
} 
document.answerarea.input.onkeypress = sendanswer; 

window.onload=function(){ 
    var kuki = "redirectPath="; //NAME OF COOKIE WE SET 
    var cookies = document.cookie.split(';'); 

    for(var i = 0; i < cookies.length; i++) { 
    var c = cookies[i]; 
    while (c.charAt(0) == ' ') c = c.substring(1, c.length); 

    if (c.indexOf(kuki) == 0){ 
     var path = c.substring(nameEQ.length, c.length); 
     //MOVE USER TO STORED PATH 
     document.location.href = path; 
    } 
    } 
} 

的cookie被創建,但我得到:在控制檯「未捕獲的ReferenceError nameEQ沒有定義」。重定向不起作用。

有沒有辦法解決這個問題?謝謝。

+0

這是因爲nameEQ未定義和在這行中引用'var path = c.substring(nameEQ.length,c.length);' - 也許這需要'kuki.length'而不是 –

+0

@JaromandaX這個工程。謝謝! – deanboysupreme

回答

0

首先,我會建議你創建一個函數來創建一個cookie,你必須在W3C的學校,

function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

,也是一個功能讀取該Cookie:

function getCookie(cname) { 
    var name = cname + "="; 
    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); 
     if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 
    } 
    return ""; 
} 

二您的文檔的流程應該是您首先保存cookie:

 function sendanswer(e) { 
    if (e.keyCode === 13) { 
    e.preventDefault(); 
    var answer = document.answerarea.input.value; 

    if (answer) { 
     //SET COOKIE WITH NAME redirectPath 
     setCookie("redirectPath=" , answer); 
     window.location.href = answer; 
    } 
    } 
} 

window.onload=function(){ 
    var kukiResult = getCookie("redirectPath"); 
}