2009-11-27 69 views
0

我目前正在开发一个Facebook应用程序,其中有一个iFrame。 iFrame加载一个Java小应用程序(因此,FBML页面只是页眉页脚和FBML功能的一个包装)。从iFrame(本地页面)与父母(Facebook的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的小程序,因为小程序是通过deployJava(类由Sun分布式)部署,如果我在一个网站FBML页面运行,JavaScript的Navigator类将得到追加(a_navigator)和它不会运行。

我希望我的描述足够清晰,任何人有任何想法?

在此先感谢您的帮助,

迈克尔

+0

有没有办法,如果你的iframe是另一个域来访问父页/窗口。也许Facebook有另一种机制,通过它你可以启动“streamPublish()”... – James 2009-11-28 00:35:05

+0

我担心这是不可能的,谢谢把最后的钉子放在棺材里。 – Talonzor 2009-11-30 14:24:24

回答

0

你好,我刚刚经历了这个问题,并希望做一些像你,我觉得砍死。但我所做的就是用它yourApplet.getAppletContext().showDocument(url,"_parent");。这有助于我重定向到其他窗口,我有脚本发布在这个新窗口中,我有一个按钮来通过javascript发布一个故事。这个按钮不能是必需的

使用“_parent”是很重要的,所以你可以重定向父窗口。

我希望这有助于