« 妻は僕より高給取り | トップページ | 人生は常に手遅れ »

2007/02/08

Yahoo! UI LibrayのAjaxでSafariが文字化け

去年の10月にprototype.jsを使ってみたらSafariで文字化けしていたので、それを直して使っていました。でも、今は先日購入したAjax ライブラリ リファレンスを片手にYahoo! UI Libraryを試しています。

すると、やっぱり非同期通信をさせるとSafariでは文字化けが...

とういうことで、500行目付近をちょこっと修正して使えるようにしました。赤い箇所が修正部分です。

obj.tId = o.tId;
obj.status = o.conn.status;
obj.statusText = o.conn.statusText;
obj.getResponseHeader = headerObj;
obj.getAllResponseHeaders = headerStr;
obj.responseText = o.conn.responseText;
obj.responseXML = o.conn.responseXML;
 
//Safari文字化け対策
if(navigator.appVersion.indexOf( "KHTML" ) > -1){
	var esc = escape(obj.responseText);
	obj.responseText = (esc.indexOf("%u") < 0 && esc.indexOf("%") > -1) ?
		decodeURIComponent(esc) : obj.responseText;
}
 
if(typeof callbackArg !== undefined){
	obj.argument = callbackArg;
}
 
return obj;

これで無事にFireFox, IE, Safariのいずれでも無事に動くようになりました。

しっかし、Ajaxって楽しいですね。一昔前には全然できそうもなかったようなことがいとも簡単にできてしまい驚きを隠せません。そして、ついつい「これを使って何をするか」という本質を忘れて、手段を追求してしまう自分に困っています。

...さてと、これを使って何をしようかな。

|

« 妻は僕より高給取り | トップページ | 人生は常に手遅れ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/79953/13846091

この記事へのトラックバック一覧です: Yahoo! UI LibrayのAjaxでSafariが文字化け:

« 妻は僕より高給取り | トップページ | 人生は常に手遅れ »