HOME » MODxスニペット XML宣言によるIEバグ回避

MODxスニペット XML宣言によるIEバグ回避

XML宣言とは文書の冒頭に

<?xml version=”1.0″ encoding=”utf-8″?>

のような記述をし、XML文書であることを宣言するもので、XHTMLにおいてもその記述が推奨されています。

ただし、XHTMLではこのXML宣言をすることで、IEで表示崩れを起こす場合があります。
これはXML宣言によって意図しない表示モードになってしまうためで、IE特有のバグと言っていいと思います。

このIEの挙動を回避するために、プログラムで宣言のありなしを制御することにします。

MODxでスニペット[[XmlVersion]]を下記内容で作り

PHP:
  1. <?php
  2. if (!ereg("MSIE",$_SERVER['HTTP_USER_AGENT'])) {
  3. echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
  4. }
  5. ?>

テンプレートの冒頭にスニペット名を追加します。

HTML:
  1. [!XmlVersion!]<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
  2. <html xmlns=”http://www.w3.org/1999/xhtml” lang=”ja” xml:lang=”ja”>

この時スニペット名の後ろに改行を入れてはいけません。

Book Mark
  • Hatena
  • Google Bookmarks
  • yahooJapan
  • Twitter
  • livedoor
  • nifty
  • Live

関連記事

コメントはまだありません  コメントをどうぞ »

コメントはまだありません。

このコメント欄の RSS フィード

  • レンタルサーバーなら使えるねっと

コメントをどうぞ

↑このページの先頭へ