2012-02-29 55 views
0

我有一个Facebook的画布iframe应用程序。在那里,我有一个SWF对象,需要调用我的主要外表应用程序主体中定义的javascript函数。 这个电话没有发出,我猜Facebook正在阻止它。从Flash内部的Javascript调用,在Facebook画布应用内

必须有解决办法吗?

我做从Flash(AS2)测试呼叫这样的:

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

我需要尝试和捕捉的Facebook iframe和使用在Flash?

+0

林不太确定“一定有办法”。 Facebook和一般浏览器中的安全模型都是为了防止它。 – 2012-02-29 19:07:55

+0

@LarsBlåsjö我知道有一种解决方法,因为Facebook应用中的数百个Flash游戏正在实现它。 – MrCode 2012-02-29 19:36:13

+0

我的意思是可能没有办法解决诸如Facebook设置allowcriptaccess =“从不”在Flash内容(不一定在您的iframe中)或不同来源的帧之间停止的JavaScript调用等机制。可能有一种方法可以完成你想要完成的任务,通常是这样,但是如果出于安全原因停止JavaScript调用,则可能需要使用另一种方法。 – 2012-02-29 20:23:44

回答

0

我知道有一种解决方法。将闪存放入HTML文档并设置document.domain = x。在Canvas应用程序的主体中,也设置相同的document.domain = x。然后使用iframe来显示Flash的HTML文档。

Flash然后可以进行JavaScript调用,并根据需要与您的画布应用进行交互。

1

你需要使用ExternalInterface类:
ExternalInterface Documentation

很容易为ABC。例如这行代码将执行
警报javascript函数。

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

感谢,但即使使用'ExternalInterface',调用也不会像'getURL' – MrCode 2012-02-29 19:25:39

+0

检查您的JavaScript代码。 是功能的名称权吗? – socksocket 2012-03-01 15:37:47

+0

是的功能名称是正确的,请参阅我的答案的解决方案。 – MrCode 2012-03-06 12:55:52