All About
アーカイブス
allabout内検索

[号外]FlashなどをIE仕様変更に対応させる


[号外]FlashなどをIE仕様変更に対応させる

Microsoft社(MS)が、Eolas社の特許を侵害したとして提訴された訴訟関連で、 「object、embed、および applet タグが読み込まれるたびに確認ダイアログを出す」というActiveX対応がいよいよ現実のものになるようです。

MSのセキュリティ アドバイザリ (912945) によれば、今月の月例修正プログラムは12日、あるいはそれよりも早くリリースされる予定ですが、これまで Windows Update で「推奨される更新プログラム」として配布されてきたこのパッチ「KB912945」が、他のセキュリティ修正と同梱され、「Internet Explorer 用の累積的なセキュリティ更新プログラム」としてリリースされることになります。

対策としては、以前、下記のリンクにある記事でも書きましたが、js外部ファイル化によって回避が可能です。

4月12日までは、あまり時間がありませんから、対応がまだの方は早めの対処が必要です(パッチ適用後、一時的に元に戻す互換性維持のための更新プログラムも2ヶ月間限定で提供されるようですが、MSは今後この修正を戻す予定はないということで、外部.jsファイル化を推奨しています)。

2003.11 [9]FlashなどをIE仕様変更に対応させる
/gm/gc/24061/
2003.12 [13]FlashなどをIE仕様変更に対応させる 関数化
/gm/gc/24065/
// 書式 writeFlashHTML2('_属性名1=値','_属性名2=値','_属性名n=値',...)
// 例 writeFlashHTML2('_swf=test.swf','_width=100','_height=100')


具体的に何が起こるのかといいますと、objectやembedタグで書かれたFlashなどのActivXコンテンツは、一度、ユーザーがクリックするなどの動作をするまでは動かなくなる、ということです。

下記、リンクの「ActiveX コントロールのアクティブ化」によれば、次のような動作になります。

非アクティブなコントロールをアクティブ化するには、コントロールをクリックするか、Tab キーを使用してコントロールにフォーカスを移し、Space キーまたは Enter キーを押します。外部スクリプト ファイルから読み込まれた非アクティブなコントロールは、ユーザー操作にすぐに応答するため、アクティブ化する必要はありません。

上記、サイトの説明にある、外部.jsファイルからの読み込みを使った回避策のサンプルを簡単に再現すると、たとえば、次のようなものになります(他にcreateElementによる方法などいろいろありますが、、、)。

document.writeのケース
http://game.gr.jp/js/books/dhtml2/part2/b/b32/b32-5-1.htm


outerHTMLのケース
http://game.gr.jp/js/books/dhtml2/part2/b/b32/b32-5-2.htm


そして、逆に、直接embedタグをHTML内に書いた、つまり駄目なケースです。更新プログラムを適用したIEで、マウスを乗せてしばらくすると、下記のようなチップがあらわれ、クリックすると使えるようになります。つまり、クリックするまでは使えないのです。
http://game.gr.jp/js/books/dhtml2/part2/b/b32/b32-5-0.htm


関係リンク

Explorer の ActiveX 更新プログラム
http://support.microsoft.com/kb/912945/jaInternet
ActiveX コントロールのアクティブ化
http://www.microsoft.com/japan/msdn/workshop/author/dhtml/overview/activating_activex.aspx
マイクロソフト セキュリティ アドバイザリ (912945) http://www.microsoft.com/japan/technet/security/advisory/912945.mspx
Internet Explorer の変更に関する開発者向け情報
http://www.microsoft.com/japan/msdn/ieupdate/
An update on the IE ActiveX change from Mike Nash
http://blogs.technet.com/msrc/archive/2006/03/29/423560.aspx
マイクロソフト セキュリティ情報の事前通知 http://www.microsoft.com/japan/technet/security/bulletin/advance.mspx

Flash アクティブ コンテンツ アップデート拡張機能(パブリッシュによる)
http://jsgt.org/mt/archives/01/000997.html
MSIEのパッチKB912945のナイスな対応策(現状のEMBEDやOBJECTタグをそのままにして最後に1行追加するだけ、しかもJSがoffでもOK)
http://jsgt.org/mt/archives/01/000984.html

注意点

上記リンク内の「既知の問題」や「よく寄せられる質問」などをよく読んでおく必要があります。 たとえば、現状は、インターネットオプションの[スクリプトのデバッグを使用しない] チェック ボックスがオフになっている場合には、外部スクリプトによる手法が機能しません。つまり、スクリプトのデバッグを使う人は、外部ファイルにしてもこの問題を回避できないことになります。



いずれにしても、Web担当者は、今月のWindows Updateに関しては緊急かつ慎重な対処が必要でしょう。

それにしても、世界中のユーザーとWeb制作者に多く苦痛を強いるだけのこの裁判の成り行きには、疑問を感じざるを得ません。

参考::JavaScript Tips
外部ファイル編

最終更新者:高橋 登史朗 (更新日:2006年04月07日)

関連キーワード:

インターネット・パソコン活用

最新情報を見る

掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます