
最近はstrict XHTMLを使ってWebページを製作することが多くなったのですが、そういった場合Flashをどうやって表示させるかは悩みどころ。というのは、embedタグはXHTMLには定義されていないからです。embedタグを使わないとFirefoxやNetscape系でFlashを表示させることができないと思われがちですが、そうでもないようです。
SG::Acme : Flashをstrict XHTMLで。では、XHTMLで定義されているobjectタグだけを使ってFlashを表示させる方法を紹介しています。objectタグにどの属性をつけてどの属性を取り除くのかがポイントのようですね。
この件に関する詳しい議論はリンク先を読んでいただくとして、どのブラウザでもobjectタグのみで表示するのに最低限必要なコードは以下の通り。
<object data="fma.swf" width="720" height="200" type="application/x-shockwave-flash"> <param name="movie" value="fma.swf" /> </object>
codebase属性などを取り除く必要があるようなので、Win IEでのFlash Playerの自動インストールや自動バージョンアップなどができなくなってしまいますが、Flash Playerのインストール率は90%を超えていると思ったので(Windows XPにはバンドルされてますよね)、なくても構わないような気もします。どうしても必要ならJavaScriptでブラウザ別のobjectタグを動的に書き出せば済みますからね。追記2006年12月30日:自動バージョンアップが全くできないわけではなくExpress Installという方法を使えば自動バージョンアップが可能です。
JavaScriptでこのようなXHTML 1.0 ValidなFlashを表示するためのライブラリを公開しました。上記のIEの自動インストールができない問題などにも対処してます。
気になるのは、レガシーブラウザ(IE4とかNetscape4とか)でどうなるかというところ。とりあえず上記の方法では、IE4では表示されましたが、Netscape4では表示されませんでした。ただ、これらのブラウザではCSSをうまく解釈してくれないので、CSSを適用させないようにすることが多いのですが、Flashに関しても同じような考え方で代替のJPEGみたいなものを表示させると言うことにしておけば良いのかもしれません。
音ログ x POQUEをFirefoxで表示する
音ログ x POQUE ソースメーカーで生成されるソースは、embedタグを使っていたりしてValid XHTMLではありません。embedタグを削除したりす…
XHTMLでFlashを表示
前のエントリでFlashを埋め込んだのですが、XHTML StrictでFlas…