ICB's Diary - 2nd style -

ポップンサイト「Formula」の管理人ICBの日常を綴るページ
XML on Firefox
minamoさんの日記の中に出てきた状況に見覚えがあるような無いような…

・IEでは意図した動作をする
・Firefoxでは意図した動作をしない、というか何も起きない
・その際、ブラウザのエラーコンソールには何も出ない

ポプスキルの改修をやっている最中で、
改修後のポプスキルはAjaxゴリゴリ使っているため
JavaScriptでのXMLのパース処理が必要になってくるんですが、
クロスブラウザのチェックをしていたときに同じ事態に1度ハマったような記憶があるんですよね…(うろ覚えですが)

なんか、ものすごい凡ミスをしでかしていたのが原因だったような気もするのですが
そもそも、果たして本当に同じ問題なのかどうかが不明ですからね。



…ですが、ネット上に転がっているFirefox用サンプルさえも動かない
というのが気になりますね…
ちょっと実物を見てみたいようなw

-----------------------------

minamoさんが実物をうpしてくださったので確認してみましたが、
確かに大文字・小文字のミスはありますね。

ですが、それを元にソースを調べたところ…
http://q.hatena.ne.jp/1172497719

恐らく↑ですよね。
そちらのページ内では、for文内の変数名もroutemapTagになっているので、そこはたぶん問題ないかな、と思います。
(もしかしたらminamoさんのコピペミスか何か…?)

むしろ、Firefoxであればエラーコンソールに「Undefined variable」のエラーメッセージが出るような気がします。

class属性やid属性の大文字・小文字をガン無視するという、あまりにも勝手すぎる拡大解釈を繰り広げる天下のクソブラウザIE大先生でさえも、変数名の大文字・小文字は区別してくれるっぽいので、考えられる原因としては…

サンプルでは
httpRequest.responseXML.getElementsByTagName("routemap")
となっていますが、routemapっていうエレメントがそもそも無いんですよね。

getElementsByTagName関数で、存在しないタグ名を引数に渡した場合、
恐らく長さ0のオブジェクトが返ってくるはずなので、
配列の[0]を取ろうとした時点でundefinedになってしまっているはず。


で、routemapTagにundefinedが代入されて、for文が実行されるわけですが
何の問題もなくfor文をスルーして終了
といった感じじゃないでしょうか。

挙動確認用のサンプルを晒してみます。


<html>
<body>
<div>undefined test.</div>
</body>
</html>
<script type="text/javascript">
<!--

var hoge = document.getElementsByTagName("hoge");

alert( hoge );
alert( hoge.length );

var hoge0 = hoge[0];
alert( hoge0 );

for( i=0; i<hoge0; i++ ){
alert(i);
}

alert("finish");

//-->
</script>


JavaScriptってこの辺りの挙動がいちいち面倒ですよね。
IEさえ消えてなくなってくれれば、少しは楽になるんですが…w

クロスブラウザを考える上で結構ハマりやすいのは…
先述した大文字・小文字問題の他に
IEはid属性とname属性をそもそも区別しない、という点ですかね…

確かにW3Cの勧告では、同一ページ内に同じid属性は禁止されてますが、id属性とname属性で同じ値も推奨されてなかったはずなので、それに従っていれば問題は起き得ないのですが…w

IE8は多少マシになったとはいえ、未だにIE6ユーザーが少数存在している以上、切り捨てるわけにはいきませんからね。
IEのために面倒な実装をしなくて済むようになるにはまだ数年かかるでしょう(´Д`)



| comments(1) | trackbacks(0) | 日記 | 23:00 | Formula(ポップン動画サイト)
コメント
iadvbxqtqomuf, <a href=http://www.debtkiller.net>bad credit debt consolidation loan</a> , oruaaij
ÿþ
| GraceRug | 2014/06/07 12:29 AM |
コメントする









この記事のトラックバックURL
http://blog.formula.pupu.jp/trackback/1123106
トラックバック
CALENDAR
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< January 2019 >>
SELECTED ENTRIES
CATEGORIES
ARCHIVES
RECENT COMMENT
LINKS
jubeat
Rilakkuma
PROFILE
OTHERS