FlashをXHTMLで表示させるには(embedタグを使わずに表示させるには)

Flash ロゴ

最近は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みたいなものを表示させると言うことにしておけば良いのかもしれません。

2 thoughts on “FlashをXHTMLで表示させるには(embedタグを使わずに表示させるには)”

  1. 音ログ x POQUEをFirefoxで表示する

    音ログ x POQUE ソースメーカーで生成されるソースは、embedタグを使っていたりしてValid XHTMLではありません。embedタグを削除したりす…

Leave a Reply

Your email address will not be published. Required fields are marked *