2016-04-05 10 views
0

クライアント側でCookieを使用しているプロジェクトで作業しています。私はクッキーを作り始めました。私たちはどんなフォームにもユーザー入力を保存したいので、ユーザーが別のフォーム上に別のフォームを表示した場合、そのフォームに前のフォームの入力を自動的に入力できます。JavaScriptのCookieとUncaught SyntaxError:Chromeの予期しないトークンu

このサイトはPHPとAngularJSで構築されていますが、私はAngularJSのバージョンに苦しんでいるため、まずJavaScriptソリューションに取り組んでいます。それはFFとIEでうまくいくが、Chromeは私にエラーを与える - Uncaught SyntaxError:予期せぬトークンu。私はこの同じ正確な問題について他のStackOverflowの記事を読んだことがありますが、私たちはそれを修正できるとはどういうものなのか分かりません。

私のJavaScriptのソリューションは、ここではその起源を持っていますhttps://www.youtube.com/watch?v=P4Zlc6pdHgM

ページ1つの形式(私はキーと値-pairs.htmlそれを呼んでいる):

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body> 
<table border="1"> 
    <tr> 
    <td>First Name</td> 
    <td><input type="text" id="form_000c_fld_0_fn" /></td> 
    </tr> 
    <tr> 
    <td>Last Name</td> 
    <td><input type="text" id="form_000c_fld_0_ln" /></td> 
    </tr> 
    <tr> 
    <td colspan="2"> 
     <input type="button" value="Set Cookie" onClick="doSubmit()" /> 
     <a href="key-value-pairs-2.html">Let's see if this works</a> 
    </td> 
    </tr> 
</table> 
<script type="text/javascript"> 
    function doSubmit(){ 
     var customObject = {}; 
     customObject.name = document.getElementById("form_000c_fld_0_fn").value; 
     customObject.last = document.getElementById("form_000c_fld_0_ln").value; 
     var jsonString = JSON.stringify(customObject); 
     document.cookie = "cookieObject=" + jsonString; 
    } 

    function getCookie(){ 
     var nameValueArray = document.cookie.split("="); 
     var customObject = JSON.parse(nameValueArray[1]); 
     document.getElementById("first_name").value = customObject.name; 
     document.getElementById("last_name").value = customObject.last; 
    } 
</script> 

</body> 
</html> 

2ページのフォーム(私が呼んでいますこのキーと値のペア - 2.html):

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body onLoad="getCookie()"> 
<table border="1"> 
    <tr> 
    <td>First Name</td> 
    <td><input type="text" id="first_name" /></td> 
    </tr> 
    <tr> 
    <td>Last Name</td> 
    <td><input type="text" id="last_name" /></td> 
    </tr> 
    <tr> 
    <td colspan="2"> 
     <a href="key-value-pairs.html">Let's test another one</a> 
    </td> 
    </tr> 
</table> 
<script type="text/javascript"> 
    function doSubmit(){ 
     var customObject = {}; 
     customObject.name = document.getElementById("form_000c_fld_0_fn").value; 
     customObject.last = document.getElementById("form_000c_fld_0_ln").value; 
     var jsonString = JSON.stringify(customObject); 
     document.cookie = "cookieObject=" + jsonString; 
    } 

    function getCookie(){ 
     var nameValueArray = document.cookie.split("="); 
     var customObject = JSON.parse(nameValueArray[1]); 
     document.getElementById("first_name").value = customObject.name; 
     document.getElementById("last_name").value = customObject.last; 
    } 
</script> 

</body> 
</html> 
+0

..クッキーを設定し、取得するため、これらの機能を試してみてください - VAR nameValueArray = document.cookie.split(「=」);ここでは - var customObject = JSON.parse(nameValueArray [1]); –

+1

'JSON.parse(undefined)'、つまり 'nameValueArray [1]'が 'undefined'になっているので、このエラーが発生しています。 'nameValueArray'の値をダブルチェックし、正しくクッキーを解析していることを確認してください。 –

答えて

0

あなたのコードでは、1つのクッキーしか存在しないと仮定しています。エラーが2ページ目に表示され、私は私をデバッグするとき、それはここで起こっているのいずれか

function setCookie(name, value) { 
    var cookie = name + "=" + escape(value) + ";"; 
    document.cookie = cookie; 
} 

function getCookie(name) { 
    var chunks = document.cookie.split(";"); 
    for(var i=chunks.length; i--;){ 
     if(chunks[i].trim().split("=")[0].trim() == name){ 
      return chunks[i].trim().split("=")[1].trim(); 
     } 
    } 
    return null; 
} 
関連する問題