从iFrame(本地页面)与父母(Facebook FBML页面)进行通信

时间:2009-11-27 16:10:48

标签: javascript iframe fbml

我目前正在开发一个有iFrame的Facebook应用程序。 iFrame加载一个Java applet(因此FBML Page只是页眉页脚和FBML函数的包装器。)

目前的情况是,例如,Java applet有一个事件(用户完成了游戏)并且它在iFrame页面上进行了javascript调用。那么它需要做的是在父窗口(Facebook.streamPublish())中调用javascript,以便用户能够发布他的得分/事件/赢/输等。

FBML页面上的iFrame代码:

<fb:iframe id='appletIframe' frameborder='0' resizable='true' scrolling = 'no' name='appletIframe' src='appletPage.php'></fb:iframe>

每当我尝试与父母沟通时,我都会拒绝访问,因为它是跨域调用。我想知道它是否可能通过Facebook.connect或其他一些技术来调用父母或者是否有其他方式。如果用户完成游戏,则iFrame调用和Parent调用之间应该有最小的延迟。

我在iFrame中执行applet的原因是,因为applet是由deployJava(由Sun分发的类)部署的,如果我在facebook FBML页面上运行它,Javascript导航器类将被附加(a_navigator)并且它不会跑。

我希望我在描述中足够清楚,任何人都有任何想法吗?

提前感谢您的帮助,

迈克尔

2 个答案:

答案 0 :(得分:0)

你好,我刚刚遇到过这个问题,想做像你这样的事情,我觉得被黑了。但我所做的就是使用它yourApplet.getAppletContext().showDocument(url,"_parent");。这有助于我重定向到其他窗口,我有脚本要发布在这个新窗口中,我有一个按钮通过javascript发布一个故事。这个按钮不能是必要的

使用“_parent”非常重要,因此您可以重定向父窗口。

我希望这有帮助

答案 1 :(得分:0)

旧问题......但这是一个非常好的资源http://softwareas.com/cross-domain-communication-with-iframes