ブログバトラーのブログパーツにてswf内からjsを宣言していたんですが,どうもそれによる不具合が発生.
例えば
this.getURL('javascript:this.test1=function("alert('test1');");');
this.getURL('javascript:this.test2=function("alert('test2');");');
this.getURL('javascript:this.test3=function("alert('test3');");');
と連続して宣言した際になぜかIEでは2つ目以降が宣言されなかった.
これは常にそうなのか,分からないけどonEnterFrameにて1フレームごとに宣言することで解決....
var count:Number = 0;
this.onEnterFrame = function():Void {
switch(count++) {
case 1:
this.getURL('javascript:this.test1=function("alert('test1');");');
break;
case 2:
this.getURL('javascript:this.test2=function("alert('test2');");');
break;
case 3:
this.getURL('javascript:this.test3=function("alert('test3');");');
break;
case 4:
delete this.onEnterFrame;
break;
}
};
とおもったらそれでもそれ以降に書かれた(?)jsがIEにてエラーになりバナーや他のブログパーツが表示されない等の不具合が発生...(大変もうしわけございません...)
ちょっと原因や,環境,スクリプトの書く位置などがクリティカルに言えないけど,複数のjsのメソッドをswfから宣言させるのは避けたほうがいい?のかもしれない... 結局jsファイル内に記載することで解決した模様です.
ども。ぼくもこれハメられました。
IEだとgetURLで連続してjs呼び出しができなかった(メソッド宣言とか関係なく)。
で、getURL("javascript:foo();bar()"); と一度の呼び出しで済ませて解決しました。あとExternalInterfaceでも問題なかったです。
contributor タナカヤスヒロ : 2006年12月25日 15:11
> タナカさん
おひさしぶりです.
複数の宣言じゃなくて複数のgetURLによるjsの呼び出しがダメなんですね... なるほど,そういうアレなんですね.
Player7でなければExternalInterfaceを使いたいところなんですけどね.
contributor nao : 2006年12月26日 00:31