akihiro kamijo: IE6 の仕様変更への対応関連情報です

« live! eclipse 2006 | Main | Timer クラス »

April 08, 2006

IE6 の仕様変更への対応関連情報です

IE6 のアクティブコンテンツ関連の動作を変更するパッチが公開されましたが(関連情報)、それに伴い、対応方法に関連する記事がUS のアクティブコンテンツデベロッパーセンターにて公開されました。

IE の変更に対応するためのサンプルファイルはこちらからダウンロードできます。( ZIP ファイル 4K) これには以下のファイルが含まれています。

  • AC_RunActiveContent.js: Flash や Shockwave コンテンツを表示する際に使用します
  • AC_ActiveX.js: その他のアクティブコンテンツ用です
  • SampleActiveContent.html: 上2つのJavaScript ファイルの使用例です

swf を表示するにはは AC_RunActiveContent.js ファイル内に定義されている AC_FL_RunContent 関数を Object タグの代わりに使用します。関数の引数にはパラメータの名前と属性を交互に記述します。

例として以下のような HTML ファイルがあるとします。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>Before</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
    width="369" height="113">
    <param name="movie" value="flash.swf">
    <param name="quality" value="high">
    <embed src="flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="369" height="113"/>
    </object>
  </body>
</html>

これを書き直すと以下のようになります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>After</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript" src="after/AC_RunActiveContent.js"></script>
  </head>
  <body>
    <script type="text/javascript">
      AC_FL_RunContent(
      'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0',
      'width','369',
      'height','113',
      'src','flash',
      'quality','high',
      'pluginspage','http://www.macromedia.com/go/getflashplayer',
      'movie','flash' );
    </script>
    <noscript>
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
      codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
      width="369"
      height="113">
      <param name="movie" value="flash.swf">
      <param name="quality" value="high">
      <embed src="flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="369" height="113"/>
      </object>
    </noscript>
  </body> 
</html>

Posted by ackie at April 8, 2006 11:32 PM

Comments

こんにちは。
情報提供ありがとうございます。
Flex Builder 2 β2がbinフォルダに出力したhtmlを見ると、この記事のAC_FL_RunContent()を使用しているようですが、Flex Builder 2 および Flex Data Services の β2 では、すでに IE6 のパッチに対応済み、ということでしょうか?

Posted by: Egeta at April 10, 2006 11:30 AM

Egeta さん、こんにちは。

Beta2 に含まれるものは少しバージョンが古いのですが、IE6 のパッチに対応するものです。最終的な仕様は製品の発表をお待ちいただくとして、Flex2 は FlexBuider2、FDS2 ともに IE6 のアップデートには対応する予定とのことです。

Posted by: ackie at April 10, 2006 04:47 PM

いつも濃い情報ありがとうございます。

さてサンプルコード(after)はそのままではうまく表示されませんでした。
AC_RunActiveContent.jsを参照しているscriptタグを
(簡略終了タグ形式でなく)閉じタグをつける形にすると表示されました。

Posted by: uenon at April 11, 2006 05:58 PM

uenon さん

ご指摘ありがとうございます。そうですね。早速直しておきました。

Posted by: ackie at April 11, 2006 07:01 PM

こんにちは
元のHTMLにインクルードしていたjavaスクリプトを
swfから叩いていたのですが、上の方法にしたところ
javaスクリプトが叩けなくなりました。
そのへんも書き換えが必要なんでしょうか

Posted by: yu at April 18, 2006 09:36 PM

yu さん、こんにちは。

ご紹介した方法は swf が表示されるまでを変えるもので、表示後の動作は本当は変わらないはず..です。
swf が表示された時点での HTML のソースを見てみて、変更前の HTML と比較してみてはいかがでしょうか?

Posted by: ackie at April 19, 2006 07:54 PM

修正するとflashそのものが表示されません…。

Posted by: な at September 25, 2006 02:17 AM

諦めました。flashを外す事にします。

Posted by: な at September 25, 2006 03:09 AM

Post a comment




Remember Me?