2011年3月9日水曜日

javascript覚書その2: 全角とか、改行とか。。。

なんだが、よくわからないエラーに出くわしたので、解析がてらメモメモ。
まずは、勝手な推論。。。
1: どうやら、全角文字列が、入っているものを要素として扱うとこけるらしい?
2: 改行が入っていると予期せぬ動作をするらしい?
というわけで、1から検証してみる。
var Exp = function(){

 function click1(){
  alert('こんにちは 世界');
 }

 return {
  click1: click1,
 }
}();
こんな適当なメソッドを用意して、実行してみる。
実行環境はIE8です。
ドキュメントモードはIE8標準。
→普通に表示される。
ドキュメントモードはQuirksモード
→【識別子、文字列または数がありません。】
どうやら、昔々モードでは動かないらしい。これには参りそうだ、IE6での検証もしてみるか。
そんでもって、改行の実験もしてみよう。下記のようなソースコード。
var Exp = function(){

 function click1(){
  alert('こんにちは
世界');
 }

 return {
  click1: click1,
 }
}();
結果はQuirksもIE8もだめ。【終了していない文字列型の定数です。】
となった。さて、どうやって直そうか?
結局、DBから呼んでいる部分にはなから改行が入っているのが問題。
取得時に改行コード、全角→半角に変換することで表示の担保は出来そう。
解決編は本当に解決したら書こうかな。