IE7 で何故か WMP に関係してそうな警告が出る
先日、ようやく正式版(日本語版)が公開された Internet Explorer 7 で、勤務先のサイトの表示確認をしてみました。
すると、トップページを表示したところ、何故か「'このWebサイトは、'Microsoft Corporation'からの'Windows Media 6.4 Player Shim'アドオンを実行しようとしています。Webサイトとアドオンを信頼し、アドオンの実行を許可するには、ここをクリックしてください」という警告が表示されます。
何事かと思い、少しググッて見たので、その要点を書き残しておきます。
まず、警告の中の 'Windows Media 6.4 Player Shim' ですが、マイクロソフトのサポート技術情報に次のようなことが書かれています。
Windows Media Player 9 シリーズは、 Shim を使って、 Windows Media Player 9 シリーズのネイティブ オブジェクト モデルに Windows Media Player 6.4 のオブジェクト モデルを変換します。
とりあえず、Windows Media Player 9 用のプログラムの一部と理解すればよいようです。
したがって、ウェブページ上で WMP9 を呼び出していると、上記の警告が表示される場合があるということになります。
しかしながら、確認対象のページには、動画を埋め込んであったりはしません。WMP9 が立ち上がる理由は(パッと見には)存在しないわけです。それなのに、何故か警告が表示されます。
そこで次にチェックしたのは、アクセス解析ツール( AWStats )のオプション機能用の JavaScript です。
来訪者のブラウジング環境が各種プラグインに対応しているかどうか調べる機能を利用しているのですが、その検出部分に、VBScript で IsObject(CreateObject(MediaPlayer.MediaPlayer.1)) と書かれていました。
要するに、試しにオブジェクトを生成してみて、エラーなら非対応、という方法で判定しているわけですが、オブジェクトを生成= WMP を起動ということのようです。
ちなみに、JavaScript だと detectActiveXControl('MediaPlayer.MediaPlayer.1') と書くことで検出できるようですが、この場合も WMP が起動してしまうようです。 Apple社提供の、JavaScript で各種プラグインを検出する方法の説明(英語)に付属するスクリプトのデモページで、警告が表示されるのを確認しました。
おそらく、他のアクセス解析などを利用している場合でも、同様の方法で WMP の検出を行っているならば、同じように警告が表示されることでしょう。
本件に関しては、安直で手っ取り早い解決手段として、検出機能を殺してしまう方法を取ることにしました。
特に AWStats の場合、 Win + IE のみにおいて、検出部分の VBScript の処理が行われるようになっているため、単純に WMP 対応と返ってくるようにしてしまっても実害はないと思われるためです。
あるいは、MSDN で調べてみるともっとスマートな解決方法にたどり着けるかもしれませんが、今のところ、そこまでの調査はしていません。
| 固定リンク
