2012-02-29 1 views
0

私はFacebook Canvas iframeアプリケーションを持っています。その中で、私はメインのfacbebookアプリ本体で定義されているjavascript関数を呼び出す必要があるSWFオブジェクトを持っています。 呼び出しが行われていない、私はFacebookがそれを停止していると思います。Facebookのキャンバスアプリ内でFlash内からのJavascriptコール

これを回避する方法が必要ですか?

は、私には、Flash(AS2)から、このようなテストコールをしています:

getURL("javascript:alert(1);"); 

私がしようとFacebookはiframeをキャプチャし、Flashでそれを使用する必要がありますか?

+0

私はそれほど確かではありません "周りに道がなければなりません"。 Facebookや一般的なブラウザのセキュリティモデルは、それを防ぐためのものです。 –

+0

@LarsBlåsjöFacebookのアプリで数百のFlashゲームがやっているので、周りに道があることは分かっています。 – MrCode

+0

私はそこに方法がないかもしれないということは、Facebookのallowscriptaccess = "決して" Flashコンテンツ(必ずしもあなたのiframeにない)または異なる原点のフレーム間のJavaScript呼び出しが停止されているなどのメカニズムです。達成したいことを達成する方法があるかもしれませんが、通常はありますが、セキュリティ上の理由でJavaScriptコールが停止された場合は、別の方法を使用する必要があります。 –

答えて

0

私はそこに方法があることを知っていました。フラッシュをHTML文書に入れ、document.domain = xに設定します。キャンバスアプリの本体でも、同じdocument.domain = xを設定します。その後、iframeを使ってフラッシュのHTMLドキュメントを表示します。

フラッシュは、javascript呼び出しを行い、必要に応じてキャンバスアプリケーションとやりとりすることができます。

1

あなたはExternalInterfaceクラスを使用する必要があります。
ExternalInterface Documentation

それはABCのように簡単です。たとえば、このコード行は、
alert javascript関数を実行します。

ExternalInterface.call("javascript:alert();"); 
+0

ありがとうございますが、 'ExternalInterface'を使用しても、' getURL'のように呼び出しは行われません – MrCode

+0

javascriptコードをチェックしてください。 は機能の名前ですか? – socksocket

+0

はい機能名が正しいです、ソリューションの私の答えを参照してください。 – MrCode

関連する問題