0

jQuery で、Cookie が存在しない場合にアラートを表示する必要があります。

jQuery Cookie プラグインを使用できません。

使用できる可能性のあるスクリプトをいくつか見つけましたが、jsfiddles でそれらを動作させることができないようです。誰でも私を助けることができますか?または、この要件を満たす方法が他に提案されていますか?

http://jsfiddle.net/JustJill54/a3tgP/2/

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = dc.length;
        }
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

$(document).ready(function(){ 
    var myCookie = getCookie("MyCookie");

    if (myCookie == null) {
        // do cookie doesn't exist stuff;
        alert("Cookie not found.");
    }
    else {
        // do cookie exists stuff
        alert("MyCookie");
    }
}

http://jsfiddle.net/JustJill54/hYvX3/1/

$(document).ready(function(){ 
var acookie = ReadCookie("cookiename");
if(acookie.length == 0)
 { 
    alert("Cookie not found."); 
 }
}    

上記のフィドルが期待どおりにアラートを作成していないという私が間違っていることはありますか?

4

2 に答える 2

0
function getCookie(name) {  
    var a = name + "=";  
    var al = a.length;  
    var cl = document.cookie.length;  
    var i = 0;  
    while (i < cl) {    
        var j = i + al;    
        if (document.cookie.substring(i, j) == a)    
        {
            var endstr = document.cookie.indexOf (";", j);  
            if (endstr == -1)    
                endstr = document.cookie.length;  
            return unescape(document.cookie.substring(j, endstr));
        }       
        i = document.cookie.indexOf(" ", i) + 1;    
        if (i == 0) break;   
    }  
    return null;
}
于 2013-06-07T12:56:34.770 に答える