FLASHでパブリッシュされたswfファイルが埋め込まれたHTMLで、
文字コードをshift-jisからutf-8に変更したら、
swfファイルが表示されなくなってしまいました。
日本語サイトを海外向けにローカライズする中で起こった現象ですが、
公開中の前回分を見ても、shift-jisのままだったので、
そのままでも別に問題はないだろうとは思ったのですが、
utf-8の方が好ましいと考えて変えてみたところ、
なぜか表示されなくなりました。
そこで、Adobeから提供されているスクリプト
「AC_RunActiveContent.js」が怪しいと思い、
swfファイル表示部分の
<noscript></noscript>の中にしまわれた、
swfファイル表示用の<object></object>を、
試しに、まったく違うところにコピーすると表示されました。
これでスクリプトが原因とわかったので、
今度は「AC_RunActiveContent.js」ファイル自身の
文字コードをASCIIからutf-8に変えてみましたが、
結果は同じでした。
むむー、これはわからない。
まいった。
で、ググると、ありました。
▽FLASH-japan「AC_RunActiveContent.jsがUTF-8だと働かない?」
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=7653&forum=8
このページで親切な方が書き込んでらっしゃいますが、
swfファイル埋め込みの際に、
自動的にHTMLの<script></script>内に記述される、
------------------------------------------------------------------------------------------
if (AC_FL_RunContent == 0) {
//alert("このページでは ¥"AC_RunActiveContent.js¥" が必要です。");
} else {
------------------------------------------------------------------------------------------
で、「円記号(¥)」が問題でした。
が、単純に円記号をとっぱらうと、
「ダブルコーテーション(")」の無害化(?)ができなくなるので、
バックスラッシュに置き換えてみたところ、
------------------------------------------------------------------------------------------
if (AC_FL_RunContent == 0) {
//alert("このページでは /"AC_RunActiveContent.js/" が必要です。");
} else {
------------------------------------------------------------------------------------------
表示してくれました〜。
【まとめ】
スクリプトの中に円記号が混ざっているときは、要注意。
【MEMO】
バックスラッシュの変わりに、
記号表示用の「&quot;(&はホントは小文字)」にしてみたところ、
ダブルコーテーションにはならずに、
記述通りに、アラートが表示されてしまいました。
2008年09月27日
この記事へのコメント
コメントを書く
この記事へのトラックバック



