7

最近、ユーザーの名前を保持する Cookie を設定しようとしましたが、新しいユーザー名を要求するプロンプト ポップアップ ボックスが開きます。ユーザーがユーザー名を挿入して [OK] をクリックすると、変数 (sconName) が変数として扱われず、単に「sconName」が入力されます。

注: Scon は Web サイトの名前です。

私が使用している唯一のスクリプトは次のとおりです。

<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 に答える