2011年9月1日木曜日

Icefaces で IE6 対応の CSS を用意

最近ずっと Java の開発が続いています。開発中のシステムは Icefaces を使ったちょっとだけ Ajax ぽいアプリになっています。
今更ながら IE6 に対応させなければならないことになり、 IE6 のみ有効とか IE7 以降にのみ有効なプロパティ記述などスターハック、アンダースコアハック等の記述をして終わらせようとしましたが、どんな書き方をしても IE6 にもそれ以外のブラウザにも反映されてしまう。
それならばと、 html のコメント記述でブラウザ毎に読み込むCSSを変えてやれとしましたが、生成された jsp からコメント欄がごっそり消される。 Icefaces 余計な仕事しすぎ。

生成された html ソースをながめると接続しているブラウザ毎に、 css ファイルを生成しているようで、 IE8 で接続すると、用意したスタイルシート名_ie8.css がソースに追加され、 IE6 だと スタイルシート名_ie.css なんてファイルが追記されている。
スタイルシート名_ie.css を自分で記述して用意してみたらと言うことで、作成してみると、IE6 のときだけ反映させるスタイルが見事適用されていました。
ただ IE9 で接続すると IE6と同じスタイルシートが割り当てられるんだよね。いまのところうちの環境では IE9 は導入されていないから良いけど、いずれは IE6 を切り捨てて IE9 に対応しないといけないなあ。

あとコメントがごっそり消える件ですが、コメント自体を outputText value="<!!–[if IE 6]>" てなぐあいに jsp 側で書き出すと残りました。 Icefaces 便利なようで不便だなあ。

0 件のコメント :

コメントを投稿