unDonutのパネルでYouTube動画を再生 修正

unDonutのパネルでYouTube動画を再生


ふむふむ、これもエンコードしている場合があるわけね。
読みこめなかった不具合、修正しました。
すんませんです。


間違っているのかどうかすらわからんけど
とりあえず解決した。
escapeしてから、:、;、=、?、"、#、$、%、&、を戻した方が良さそうなので

function urlEscape(str_url) {
	var arr_code = ['3a','3b', '3d', '3f', 22, 23, 24, 25, 26];
	var str_url  = escape(str_url);
	var i, str_code;
	for(i in arr_code) {
		str_code = '%' + arr_code[i];
		str_url  = str_url.replace(eval('/' + str_code + '/ig'), unescape(str_code));
	};
	return str_url;
};

な感じで変換した。
(何か物足りない気もしないでもないし、無駄なことしている気も)


後からもっと簡単に書けるのではと、書いてみたのが

escape(string).replace(/%(3a|3b|3d|3f|22|23|24|25|26)/ig,
				function(code) {return unescape(code)});

これでいけた。
どっちもFunciotnオブジェクトを1回使っているので、そんな変わらないだろうけど。




追記
まだ短くできた。

escape(string).replace(/%(3[abdf]|2[2-6])/ig,
				function(code) {return unescape(code)});


追記
2[2-6]だけでなく、0-9にした方がいいのかも。
さほど影響無いだろうけど、UPしたファイルで使っているのはこっそり書き換えといたw