2008年12月23日火曜日

IEというかFirefoxではまった。

このエントリーをはてなブックマークに追加
いや、結局はIE死ねって話ね。


今日、YahooオークションのデータをいじるJavascript書いていたんだけど、Firefoxでの動作確認が終わってさあ、IE行くぜーってやったら、全然行かなくて。
そもそも、動かない。
そして、エラーすら出さない。
何このブラウザ?
マジギレしてconsole.logとかalertとか入れたけど全然動かない。
そこで、Operaの登場。
で、チェックしたらOperaも動かない。エラーコンソールをチェック。


var hoge = item.option[0].new;


上記のコードでエラーが出ていた。分かる人は即効で分かる。
そう、末尾のnewだ。
アホIEはnewという要素を関数と勘違いしているのだ。
#そもそも、responseにnewとか(複数言語の)予約語を含めるとか、ありえないでしょう!
#それ以前に、JSONでXMLのデータをごりごりいじろうとしている自分もどーかと思うが。

まあ、Yahooの結果を何も考えずにJSONにコンバートしてるという変態的な処理をかましてるせいで、こーゆーエラーが出ちゃっている訳なんですがねぇ。
なので、一旦、以下のように直した。


var hoge = item.option[0]['new'];


だがしかし、これでも動かない。
IE死ねってTwitterにPOSTしまくった。

結局

var hoge = item.optiopn[0]["new"];


でようやく動いた。もしJavascript使っていてIEでエラーが出なかった場合、Operaを一回通すとエラー箇所が見えるかもしれない。

0 件のコメント :

コメントを投稿