● IEの2006年4月の仕様変更に伴うFlashやWindows Mediaファイルの
動作不良に対する対策(JavaScriptの自動生成プログラム)

1.問題の概要




Flashムービーなどの挙動が2006年4月(のWindows Update)以降におかしくなったように感じられる方も少なくないと思いますが、この問題はサイト閲覧者(訪問者)の方の問題というよりは、サイト運営者(ウェブマスターなど)が対処すべき問題です。

  <<問題の例>>
1.Flashバナー広告やFlashによるメニューで2回クリックしないとリンク先に移動しない

2.Flashでロールオーバーによるメニューを使用している場合にメニューが変わらない。音が鳴らない

3.FlashやWindows Mediaファイルなどが埋め込まれた部分にカーソルを合わせると、その部分が点線で囲まれて、左のキャプチャー画像のように「このコントロールをアクティブ化して使用するにはクリックしてください」というメッセージが表示されます。

4.このWebページで ActiveXコントロールを実行するにはクリックしてください」というアラートが表示されることもあります。



2.問題の原因と、一般的な回避方法

この問題は、簡単に説明しますと、マイクロソフト社が特許の問題から、Internet Explorer(以下IE)上において、FlashやWindows MediaファイルなどをActivexから呼び出す方法を変更せざるをえなくなったことに起因しています。そして、2006年4月、マイクロソフト社は、Windows Updateを通じて、このIEの仕様変更を行いました。

詳細は、日経ITProの記事:「MSのセキュリティ・パッチでFlashコンテンツの再生に不具合発生,その理由は?」やInternet Watchの記事:「4月の月例パッチ前に、Webコンテンツを修正する--Windows Media Player、Flash、QuickTimeなどを使用するページは注意」などが参考になるかと思います。

このIEの仕様変更のため、普通に、HTMLファイルの中に、objectタグやembedタグを使って、FlashファイルやWindows Mediaファイルへリンクを行うと、思ったとおりに動かなくなっているケースが発生することがあります。

回避方法は、マイクロソフト社やアドビ社からWEB上などで公開されいます。下記の技術文書にあるとおり、JavaScriptの外部ファイル(JSファイル)を使うことです。

http://www.microsoft.com/japan/msdn/workshop/author/dhtml/overview/activating_activex.aspx
http://www.macromedia.com/jp/devnet/activecontent/

●(アドビ社サービス&サポート FAQ情報 )
IE の更新プログラムを適用すると、Flash や Shockwave を余計に一度クリックしないとコンテンツを操作できない
http://support.adobe.co.jp/faq/faq/qadoc.sv?5503+001

ブラウザの更新に備えたアクティブコンテンツ使用Webサイトの準備
http://www.adobe.com/jp/devnet/activecontent/articles/devletter.html

●(マイクロソフト社の技術情報)
動画や音楽などのコンテンツを表示した際、操作を行うためにクリックする必要がある
http://support.microsoft.com/kb/915456


  <<マイクロソフト社などが提供する回避方法の問題点>>
この回避方法は、JavaScriptの知識が多少必要なため、Flashデザイナーの方や一般的な個人ウェブマスターさんたちの場合、理解が難しい場合が多くありました。

3.JavaScriptの作成補助プログラム(動作原理概略)

そこで、HTML暗号化ソフト「SHTML」を開発している株式会社プランセスでは、JavaScriptの知識がない方にも、このJavaScriptをより簡単に作成していただけるプログラム「JavaScript Maker for Flash」を無償で公開することにしました。

このプログラムによって生成されたソースは、難読化処理を施したり、右クリック禁止処理(概ね96%以上のブラウザで有効。)を追加することも可能になっていますので、コンテンツ保護にもお役立てください。これらのことが、JavaScriptの知識をほとんど持たれていない方でも、対話式に作成可能なように設計されています。

このJavaScript作成補助プログラムの動作原理の概略は以下のようになります。

  • FlashファイルやWindows Media Player用ファイル表示のためのHTMLソースを皆様に手動で抜き出していただきます(抜き出し方は後述します)。

  • この抜き出していただいたHTMLソースを、JavaScriptのdocument.writeを使うことで出力するようにします。また、JavaScriptをHTML本体から切り離し、外部ファイル化します。この作業を手伝うのが本補助プログラムの目的です。利用者の方にJavaScriptの知識はほとんど必要ありません。

  • HTML本体と、外部ファイル化したJavaScript(拡張子は通常、「.js」となります。)をサーバにアップします。

4.JavaScriptの作成補助プログラム(動作原理詳細)

実際の変換プログラムはこちらですが、下記に手順の解説を掲載しています。ご利用前に、お読みください。

a. FlashファイルやWindows Media Player用ファイル表示のためのHTMLソースを皆様に手動で抜き出していただきます。

基本的には、オブジェクトタグで始まり、オブジェクトタグの閉じタグで終わる(「<object〜>〜</object>」)ようになっているかと思います。もしくは、embedタグを用いて、「<embed〜>〜</embed>」(embedタグの場合、閉じタグが省略されている場合もあります。)の部分のことです。

ex.オリジナルのHTMLタグ(Flashを埋め込んでいる場合)

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
とあったとすると、3行目から13行目をコピーします

 HTMLソースの切り出し方が明らかにおかしいと思われる場合は、プログラムでチェックを入れてエラーではじくようにしていますが、基本的には、HTMLタグのうち、どの部分がFlashに関するものであるか、Windows Media Playerに関するものであるかなどを理解していただいていることが前提となります。

b. 上の「a.」でコピーしたHTMLソースをテキストエリアに貼り付け、変換ボタンをクリックします。

これをテキストエリアにペーストして、JavaScriptの外部ファイルのファイル名を指定して(英数字であれば、任意(=何でもいい)です。ここでは、「flash.js」と指定したことにします。)、後は、「変換する」ボタンを押すだけです。

上の例で言えば、出力結果は、改行のない

のようなものがプログラムにより変換出力されます(難読化処理をしないことも可能です)。

変換した結果をコピーして、メモ帳などのテキストエディターを使って保存します。ファイル名は先程指定したファイル名で保存してください。ここでは、flash.jsとして保存します。JavaScriptの知識は必要ありません

c. HTML本体を修正します。

上の「a.」の例で言えば、3行目から13行目の部分を、下記の3行目から6行目までのように書き換えます。どのように書き換えるかは、実際には、プログラムにより自動生成されますので心配要りません。


1.
2.
3.
4.
5.
6.
7.
8.
とします。

d. HTML本体から外部ファイルへのリンクを貼ります。

JavaScriptの外部ファイルが、HTML本体ロード時に確実に読み込まれるように、HTML本体のヘッダー部分(「<head>」と「</head>」で囲まれた部分)に、外部ファイルへのリンクを張ります。必要なHTMLタグ(この例で言えば、「<script type="text/javascript" src="flash.js"></script>」)は、プログラムで自動生成されるため、心配要りません。

e. 修正されたHTML本体及びJavaScriptの外部ファイル(JSファイル)をサーバへアップロードします。

いきなり、同名のファイル名でHTMLファイルを上書きしてしまうと、万が一うまく動作しない場合に困りますので、まずは公開用ファイル名とは異なる別名で保存して、動作を確認してください。

「このコントロールをアクティブ化して使用するにはクリックしてください」というポップアップのメッセージや、「このWebページで ActiveXコントロールを実行するにはクリックしてください」というようなアラートが表示されていなくなっていれば、成功です。問題がなければ、公開用ファイル名で保存しなおして、アップロードしてください。

5.実際の変換プログラム

変換プログラムはこちらです。

なお、本プログラムに対しては、SHTML製品版ユーザー以外の方にはサポートはありません。サポートの必要な方は、HTML暗号化ソフト「SHTML」のご購入をご検討ください。

また、本プログラムを使うことにより、あるいは、使えなかったことにより生じた一切の損害に対しても、弊社では責任を一切取りかねますので、あらかじめご了承ください。


   ← 「SHTML」トップページへ© 株式会社プランセス