2017-02-19 6 views
0

mootoolsを使用してクッキーを削除する関数を書きました。それは素晴らしい仕事でした。私は今js-cookieライブラリを使ってjQueryで動作させようとしています。私は、これは今、約4時間のために働くために取得しようとしてきたと私は今、テーブルの上に頭を強打し始めました :(MootoolsをJquery Cookiesに変換する機能

function deleteAllCookies() { 
console.log('got to delete all cookies'); 
var cookies = document.cookie.split(";"); 
console.log("cookie length"+cookies.length); 
for (var i = 0; i < cookies.length; i++) { 
    var cookie = cookies[i]; 
    var eqPos = cookie.indexOf("="); 
    var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
    Cookies.remove(name, null); 
    console.log("name is "+name); 
} 

}

ので、それは2枚のクッキーを検索し、取得します(最初のもの)を削除します。もう一度実行すると、2番目のものが削除されます。私が間違っていることは何ですか(私はonmousedownイベントの関数をテスト用に呼び出します)

ありがとう

+0

Googleの「jquery delete all cookies」ではなく、そこにある解決法の1つをコピー/ペーストするための理由はありませんか?または 'javascriptはすべてのクッキーを削除する'。学習の目的でこれをやりたければ、これは最初に基本的なデバッグを必要とします。どこが間違っているかをトレースできますか? 'cookies.length'は何を返しますか?等 –

+0

痕跡を入れました。 cookies.lengthの長さは2です、私はまた、それが呼び出されていることを確認するために、コンソールの.logをremove関数に置きます。そこで、私は正しい2つのクッキー名を持っていることと、remove関数が2回呼び出されていることを確認しました。 Googleのアイデアに関しては、私はそれを試してみましたが、このコードに私を惹きつけたコードを試しました。 – user1616338

答えて

0

クッキーは同じna私は違う属性ですか?仕様では動作が定義されていないため、未定義の動作であり、各ブラウザは独自の動作を実装できます。そのような驚くべき結果を防ぐために、同じ名前で属性が異なる2つのクッキーを作成しないでください。

また、お客様のコードはCookies.remove(name, null)です。 js-cookieにはlatest versionのようなAPIはありません。Cookies.remove(name, attributes)またはCookies.remove(name)のいずれかを使用してください。

あなたはdocument.cookieを使用してCookieを取得しています。それをする必要はありません。ちょうどCookies.get(name)を使用できます。

関連する問題