2006年05月09日
IE7でFlashのクリックを回避
前のエントリーの続きを読んでもらうと解りますが、IE7では直接Flashが埋め込まれているサイトでは、Flashをクリックしなければ利用できない事が仕様となっているようです(IE6はその修正を削除できる)。で、それによる不具合がちらほら自サイトで起こっている為、それを回避するようにしてみました。
以前エントリーした事がありますが、同じFlashでも「Harbot」や「メロメロパーク」ではJavaScriptで呼び出している関係か、Flashをクリックせずとも利用できます。
今回はこの性質を利用してみました。方法は以下の通りです(これは自分のサイトでしかできない事であり、他のサイトでは管理者が同様の方法を取らない限りクリックは必要です)。
1.サイトに埋め込んでいる記述をそのままテキストエディター等にコピペします。
2.改行せずにすべて一行にします。
3.その記述をdocument.write('');で囲ってしまいます。
例:
document.write('');
ここで注意する事が一つ。objectで囲まれている部分に「 ' 」(シングルクォーテーション)で括っている数値やURL等がある場合、document.write('');の「 ' 」を「 " 」(ダブルクォーテーション)に直して下さい。また、万が一Flashの記述内に「 ' 」と「 " 」が混同して使われている場合は統一して下さい。
4.「解り易いアルファベット名.js」として保存します。
例:
flash.js
5.サーバーにアップロードします。
6.HTMLファイルのFlashを表示する部分の記述を以下のように一行だけに書き換える。
<script type="text/javascript" src="flash.js"></script>
以上で完了です。修正したページを開いてみます。正常にFlashが起動し、尚且つクリックせずにFlashが利用できる事を確認して下さい。
→サンプルページ(トップページだけです。クリックしなくてもカレンダー等が利用できると思います。)
意味が解らない方は止めたほうが良いかも知れません![]()
この問題ですが、Sleipnirで表示した場合(他のIEコンポーネントを利用したブラウザも?)はクリックしなくてもFlashが使えます!!ただし、IE7に特化した機能は利用できなくなりますが![]()
もう一つ追記。
上記サンプルページは、知る人ぞ知る「あれこれぽっぷあっぷ」を利用しています。それに関連して・・・実はIE6まではPNG画像の透明化ができません。ご存知の方は多いと思いますが
しかし、今回のIE7からはこのPNGの透明化に対応しています。なので、実際に試してみました。
従来ではDirectXの機能を呼び出してある程度使えたようですが、結構表示に時間が掛かるんですよね・・・ところが、IE7だとわざわざDirectXを呼び出さずとも、そのまま表示できる訳なのです![]()
これも設定してみましたので、併せて確認してみて下さい。
# ちなむと、以前は画像は利用せずに半透明化させて使っていました。