2008年11月19日水曜日

AJAXで取り込んだHTMLのtable要素が表示されない件

タイトルの通り、Push It!において、AJAXで取り込んだHTMLの中にtable要素が含まれる場合にIEだとどーーーーーーーしても表示されない件で悩み続けて1週間。

ようやく解決方法が分かりました。

table要素とtr要素の間にtbody要素が必須、なみたいだ。
AJAXでない普通のHTMLだと、tbodyはオプションなのだが、なぜかAJAXだと厳密にその辺を要求するらしい。IEだけは。まだIE6でしかテストしてないけどIE7でも同じだろうな。
もちろんtbodyはあってもいい存在なので、FireFoxやChromeでもtbodyがあっても問題ない。よって、ブラウザ別にコードを分ける必要はなくて常にtbodyは入れておいて良い。

いやしかし、、、長かった。ここに至る道は、ほんとに。
どうやって検索しても見つからないんだもんな~。これって常識?
XML(もしくはJSON)を取り込んでそれを表に整形する、とかは見つかるんだけどね。別に自分はそんなにAJAXで取り込んだデータをあれやこれやと使いまわす気もなかったのでまんまHTMLを取り込んでそれをそのまま表示させていたのだけど、どうしてもだめならXMLで取り込んで整形して表示しようとも思ったりした。
そこまで思いつめてたのだ(ま、そっちの方がスマートなのは重々承知してますが・・・)。
いや、でも、ほんと、なんで見つからないんだろ。。。

☆☆☆☆☆☆ 宣伝 ☆☆☆☆☆☆
AIR版とブラウザ版(FireFox/Chrome/IEの動作を保証・・・するつもりでがんばってます。表示はしょぼいけど)の2種類のIFでいろんなニーズにお答えするオンライン&オフライン付箋紙Push It!をどうぞよろしく。もちろん無償です。

0 件のコメント: