2015-09-19 120 views
2

我想通過使用cookie將搜索查詢從一個html頁面文本框傳遞到另一個html頁面文本框。使用cookie將搜索值從一個html頁面文本框傳遞到另一個html頁面文本框?

我曾嘗試下面的腳本,但它不是按預期工作:下面

<input type="text" value="" name="s" id="s1" /> 
<input id="btnSave" type="button" value="Search" onclick="Redirect();"/> 

<script type="text/javascript"> 
    function Redirect() { 
     var x = document.getElementById("s1").value; 
     document.cookie = x; 
     window.location.href = 'Result.html'; 
    } 
</script> 

第2頁

<script> 
    function getcookie() { 
     document.getElementById("#s").value = document.cookie; 
    } 
</script> 


<body onload="getcookie();"> 
<input id="s" type="text" /> 
</body> 
+0

'document.cookie'不起作用這樣的。並且以一種複雜的方式工作。一種簡化它的方法是使用quirksmode中的代碼http://www.quirksmode.org/js/cookies.html#script –

+0

您可以使用本地存儲。只是建議一種替代方法。它可以設置並獲取。這很簡單。 –

回答

1

您應該設置cookie及其到期時間(不重要但有用,當您想要檢索即使borwser關閉,你需要它在瀏覽器打開時再次)。 還有一件事,當您獲取cookie值時,它會給出包含所有cookie值的字符串,因此將其自定義以獲得所需的值。

設置cookie的

function setCookie(cname,cvalue,exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires=" + d.toGMTString(); 
    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 ""; 
} 

總之,對現有的解決方案

頁面內工作1

<script type="text/javascript"> 
    function Redirect() { 
     var x = document.getElementById("s1").value; 
     setCookie("s",x,2); 
     window.location.href = 'Result.html'; 
    } 
</script> 

PAGE 2

<body onload="document.getElementById('s').value =getCookie('s')"> 
<input id="s" type="text" /> 
</body> 
+0

值正在保存在cookie中,但搜索值未顯示在第2頁的文本框中。:/ –

+0

我錯過了正確的語法,可能是這個問題,否則任何額外的東西然後讓我知道 –

+0

伴侶你救了我的生命,最後這是工作。還有一件事,在從Cookie獲取搜索值後,如果我想運行此搜索值以查找匹配結果,則在頁面加載時,它可能如何?我可以使用以下代碼: ** ** ** ** ' –

0

伴侶,使用代碼:

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;} 


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 "";} 

function checkCookie() { 
var user = getCookie("username"); 
if (user != "") { 
    alert("Welcome again " + user); 
} else { 
    user = prompt("Please enter your name:", ""); 
    if (user != "" && user != null) { 
     setCookie("username", user, 365); 
    } 
}} 
相關問題