2006年10月07日

読み込んでデコードする(デバック後)

デバッグ後のコードは、結局つぎのようになった。
split( )は空の要素を返す場合があるので、それを読み飛ばす処理を入れていたつもりだったが、それはどうも不要だったようである。
保存側がきちんと出来たら、そのようなことはなくなったようだ。おまけにその処理にバグもあったので、削除する。
赤色部分を削除 した。


function yf_wmp_cookie_load(){
    var i, source, keyword, value, flist, nlist;
    if(!navigator.cookieEnabled){
        return;
    }
    source = document.cookie + ";";
    while( keyword = source.match(/SongFileList=|SongNameList=/) ){
        keyword = keyword[0];
        i = source.indexOf(keyword);
        source = source.substring(i+keyword.length);
        i = source.indexOf(";");
        value = source.substring(0,i);
        source = source.substring(i+1);
        switch(keyword){
        case "SongFileList=":
            flist = value.split(",");
            break;
        case "SongNameList=":
            nlist = value.split(",");
            break;
        }
    }
    for( i=0; flist && i<flist.length; i++ ){
        //if(!flist[i]) continue;
        yf_wmp_file_list.push(unescape(flist[i]));
        if(i<nlist.length){
            document.form.yf_wmp_name_list[i] = new Option(unescape(nlist[i]));
        }
    }
    yf_wmp_cookie_save();
}

2006年10月06日

保存する(デバッグ後)

いくつかの問題点をデバッグしたあとのコードは、つぎのようになった。
yf_wmp_file_listに格納されているファイルリストと、yf_wmp_name_listに格納されている曲名リストを、クッキーに保存す る処理である。
黄 色が追加・修正部分である。ファイルリストが空の場合、過去の日時を指定して、クッキーを消去している。


function yf_wmp_cookie_save(){
    var i, flist ="SongFileList=", nlist ="SongNameList=";
    if(!navigator.cookieEnabled){
        alert("クッキーが許可されていないと出来ません!");
        return;
    }
    for(i=0; i<yf_wmp_file_list.length; i++){
        if(i>0){
            flist += ",";
            nlist += ",";
        }
        flist += escape(yf_wmp_file_list[i]);
        if(i<document.form.yf_wmp_name_list.length){
            nlist += escape(document.form.yf_wmp_name_list[i].text);
        }
    }
    flist += ";";
    nlist += ";";
    //expires
    var xDay = new Date;
    if(yf_wmp_file_list.length>0){
        xDay.setFullYear( xDay.getFullYear() + 1 );
    }else{
        xDay.setTime( xDay.getTime() - 1 );
    }
    xDay = xDay.toGMTString();
    document.cookie = flist + "expires=" + xDay +";";
    document.cookie = nlist + "expires=" + xDay +";";
}

タグ:javascript Cookie

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。