Adobe Flex 3 ヘルプ

ホスト Web ページのスクリプトへのアクセス制御

外部スクリプトは、次の ActionScript 3.0 API を使用して実行できます。

  • flash.system.fscommand() 関数
  • flash.net.navigateToURL() 関数(navigateToURL("javascript: alert('Hello from Flash Player.')" などのスクリプトステートメントを指定するとき)
  • flash.net.navigateToURL() 関数(window パラメータを "_top""_self"、または "_parent" に設定したとき)
  • ExternalInterface.call() メソッド

ローカルで実行する SWF ファイルの場合、SWF ファイルおよび含まれている Web ページ(存在する場合)が local-trusted セキュリティサンドボックスにある場合のみ、これらのメソッドの呼び出しが成功します。コンテンツが local-with-networking または local-with-filesystem サンドボックスにある場合、これらのメソッドの呼び出しは失敗します。

SWF ファイルをロードする HTML コード内の AllowScriptAccess パラメータは、SWF ファイル内から外部スクリプトを実行する機能を制御します。

SWF ファイルをホストする Web ページの HTML コード内でこのパラメータを設定します。このパラメータは、PARAM タグまたは EMBED タグの中で設定します。

AllowScriptAccess パラメータで有効な値は、"always""sameDomain" または "never" の 3 つです。

  • AllowScriptAccess"sameDomain" の場合、外部スクリプトが許可されるのは、SWF ファイルと Web ページが同じドメイン内にある場合のみです。これは、AVM2 のコンテンツのデフォルト設定です。
  • AllowScriptAccess"never" の場合、外部スクリプトは常に失敗します。
  • AllowScriptAccess"always" に設定されている場合、外部スクリプトは常に成功します。

HTML ページ内の SWF ファイルで AllowScriptAccess パラメータが指定されていない場合、AVM2 のコンテンツのデフォルトは "sameDomain" です。

次に、HTML ページで AllowScriptAccess タグを設定する例を示します。

<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'>
<param name='AllowScriptAccess' value='never'/>
<param name='src' value=''MyMovie.swf'/>
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/>
</object> 

AllowScriptAccess パラメータを使用すると、あるドメインでホストされている SWF ファイルから別のドメインの HTML ページのスクリプトにアクセスすることを禁止できます。別のドメインでホストされているすべての SWF ファイルで AllowScriptAccess="never" を使用すると、HTML ページ内のスクリプトのセキュリティが確保されます。

詳細については、『ActionScript 3.0 コンポーネントリファレンスガイド』で次の項目を参照してください。

  • flash.system.fscommand() 関数
  • flash.net.navigateToURL() 関数
  • ExternalInterface クラスの call() メソッド

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート