トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ExternalInterface.addCallbackで登録したメソッドをIEでコールできない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
misshiki
Åê¹ÆNo.49488
投稿日時: 2012-10-30 22:28
Bak@Fla名人
居住地: 山奥(ガチで)
投稿: 108
使用環境:
WinXP SP1,FLASH MX2004
ADOBE FLASH PLAYER 9
IE6,FireFox1.5,OPERA9.01
ExternalInterface.addCallbackで登録したメソッドをIEでコールできない
お世話になります。

掲題のとおり、IE9にてExternalInterface.addCallbackで登録したメソッドをJavaScript側からコールすると、
「そのようなプロパティまたはメソッドをサポートしていません。」という旨のエラーとなってしまいます。

いろいろ試してみた結果、呼び出すJavaScriptが存在するHTMLのDOCTYPE宣言を除去すると、
正常に動作することがわかったのですが、いまひとつ釈然としません。

IE9ではDOCTYPE宣言とExternalInterfaceは相いれないものなのでしょうか?ご教授いただければ幸いです。
ちなみに動作は下記URLにてご確認いただけます。

DOCTYPEなし

DOCTYPEあり

また、Flash側のExternalInterface関連のコードの抜粋は以下のとおりです。

ExternalInterface.addCallback("loadSWF",getSwfName);
function getSwfName(_swfname:String){
	loadSwf(_swfname);
}


以上、よろしくお願いいたします。
misshiki
Åê¹ÆNo.49491
投稿日時: 2012-10-31 1:36
Bak@Fla名人
居住地: 山奥(ガチで)
投稿: 108
使用環境:
WinXP SP1,FLASH MX2004
ADOBE FLASH PLAYER 9
IE6,FireFox1.5,OPERA9.01
Re: ExternalInterface.addCallbackで登録したメソッドをIEでコールできない
自己解決したので、一応原因を投稿しておきます。

結論から言えば、IE9の仕様変更が原因でした。
OBJECT Fallback Is Included in DOM and Matched by window[name]

上記の仕様変更により、IE9ではJavaScriptでSWFを正しく指定できていなかったことが原因でした。

SWFを指定するスクリプトはAdobeのサンプルを流用していたため、まさかそっちに原因があるとは思い至りませんでした。

なんとか解決に至りましたので、本件は結了とさせていただきます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops