変なところでエラー

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: うひょ : 2006/06/15(木) 22:07  [URL]  ID:Y1L64jC2
function getcookie(mod){
	cookies = [];
	var tmp = document.cookie;
	var a = tmp.split(";");
	if(!mod){
		for(var b=0;b<a.length;b++){
			var c = a[b].split("=");
			var ckey = c[0];
			var cvalue = c[1];
			cookies[ckey] = cvalue;
		}
	}else{
		for(var b=0;b<a.length;b++){
			var c = a[b].split("=");
			var ckey = c[0];
			var cval2 = c[1].split("/");
			cookies[ckey] = [];
			for(var d=0;d<cval2.length;d++){
				var f = cval.split(":");
				var ckey2 = f[0];
				var cvalud = f[1];
				cookies[ckey][ckeys] = cvalud;
			}
		}
	}
}


上はクッキーの『○○=△△:×××/●●=▲▲;□□=■■:◆◆;』などとなっているものを取り出すものなのですが、
var cval2 = c[1].split("/");

で「'1'はNullまたはオブジェクトではありません。」
とエラーが出ます。
どうすればいいでしょうか。

1   名前: 匿名 : 2006/06/15(木) 22:07  ID:.ujF6Oem
cが配列じゃないからでは?

2   名前: underStone : 2006/06/15(木) 22:07
いや。理論的にはcは配列のはず。

3   名前: 匿名 : 2006/06/15(木) 22:07  ID:Sl2yUvjC
>>1>>0
失礼しました。どこ見ているんだか。。。

4   名前: m035 ◆Wpzr1YKOiq : 2006/06/15(木) 22:07  [URL]  ID:nxt5lbRN
a[b]やc.join(",")がどうなっているのかalertなどで確認してみては?
c[1]が存在していないとしか思えないのですが。

5   名前: うひょ : 2006/06/15(木) 22:07  [URL]  ID:Y1L64jC2
>>4
実は、関数を呼び出す前にページをロードした時にエラーが発生しているんです。
なので、確認しようがありません(^^;

6   名前: m035 ◆Wpzr1YKOiq : 2006/06/15(木) 22:07  [URL]  ID:nxt5lbRN
>>5
今あるソースとは別ファイルで、この関数もしくは問題部分のみをテストすればいいかと思います。

7   名前: うひょ : 2006/06/15(木) 22:07  [URL]  ID:Y1L64jC2
一応解決しました!
以下のソースでできました。
function getcookie(mod){
	cookies = [];
	var tmp = document.cookie;
	var a = tmp.split(";");
	if(!mod){
		for(var b=0;b<a.length;b++){
			var c = a[b].split("=");
			var ckey = c[0];
			var cvalue = c[1];
			cookies[ckey] = cvalue;
		}
	}else{
		for(var b=0;b<a.length;b++){
			var c = a[b].split("=");
			alert(c);
			var ckey = c[0];
			if(c[1].indexOf("/")==-1){ cookies[ckey]=c[1];return; }
			var cval2 = c[1].split("/");
			cookies[ckey] = [];
			for(var d=0;d<cval2.length;d++){
				var cval = cval2[d];
				var f = cval.split(":");
				var ckey2 = f[0];
				var cvalue = f[1];
				cookies[ckey][ckey2] = cvalue;
			}
		}
	}
}


最初、cvalとckeysが宣言されていなかった…(汗

また、
function setcookie(key,val){
	var tmp = key + "=" + escape(val) + ";";
	tmp += "expires = Mon,31-Dec-2100 23:59:59;";
	document.cookie = tmp;
}

上のソースでクッキーを書き込もうとしたのですが、書き込めていませんでした。
どう直せば書き込めるでしょうか…

一覧へ戻る