7

我最近一直在尝试设置一个保存用户名的 cookie,它会打开一个提示弹出框,要求输入新的用户名。当用户插入用户名并单击“确定”时,它不会将变量(sconName)视为变量,而只是放置“sconName”。

注意:Scon 是网站的名称。

这是我使用的唯一脚本:

<html>
  <body>
<script>
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; }
    </script>
<script>
  var username = readCookie('sconName');
if (username) {
   document.write("Your current username is: " + username);
}
  else {
    document.write("You have no user name");
  }

  function changeUsername() {
    var changedName=prompt("Enter user name.");
    if (changedName) {
document.cookie = 'sconName=changedName; expires=Wed, 1 Jan 2070 13:47:11 UTC; path=/'}}
  </script>
<button onclick="changeUsername()">Change</button>
</body>
</html>

请您解释一下如何告诉系统它是一个变量而不仅仅是文本。谢谢。

4

1 回答 1

17

javascript 不解析引号内的变量。您需要打破引号才能使用变量:

document.cookie = 'sconName='+changedName+'; expires=Wed, 1 Jan 2070 13:47:11 UTC; path=/'
于 2013-01-18T15:57:59.433 回答