unknownplace.org

前の日 | 最新のメモ | 次の日

# 2007-12-25

Safari3でExternalInterfaceる際のBK

as側で

ExternalInterface.addCallback("foo"...)

した場合Safariからは

document["swfid"].foo

でその関数が取れるわけですが、どうもこのオブジェクトをSafariがキャッシュしやがるらしく、二回目以降のロードで

typeof(document["swfid"].foo) == "function"

swfがロードされる前でも真になります。

上記コードでswfのロードチェックを行っていたためはまりました。。

解決法として

ExternalInterface.addCallback("ready", function():Boolean { return true });

とかを作り、typeofチェックに加えて、この関数を実際によんでちゃんとtrueが返って来るまで待つようにしたらOKでした。やれやれ。


comments


Fork me on GitHub