1

基本的にCookieを読み取り、いくつかのものを返すスクリプトをデバッグしています。IE を除くすべてのブラウザで正常に動作します。forいくつかのテストの後、ループに入らないことがわかりました。

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

caさらにテストを重ねた結果、Cookie を格納する変数が定義されていないことに気付きました。それを見ると、cookienameへの参照がないため、なぜそうすべきかわかりません。したがって、私の論理では、それは機能しないはずですが、 IE 以外のすべてで完全に機能します。

var ca = document.cookie.split(';');  


1: なぜこれは Fx、Webkit、Opera でも機能するのですか?
2: IE でも動作させるにはどうすればよいですか?


以下のように定義しようとしましたが、うまくいかないようでした。

document.cookie = name;
4

1 に答える 1

0

IE に Cookie が設定されていないようです。使ってみて

alert('d.cookie:\t'+document.cookie+'\n\n'+'d.cookie.length:\t'+document.cookie.length);

Cookie があるかどうかを確認します。

ブックマークレット

何もない場合は、次を使用して設定してみてください

document.cookie='mycookie=foo; path=/';

ブックマークレット

于 2012-06-13T12:18:39.583 に答える