0

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

目前的情况是,例如,Java 小程序有一个事件(用户玩完游戏),它在 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 分发的类)部署的,如果我在 facebook FBML 页面上运行它,Javascript 导航器类将被附加(a_navigator)并且它不会运行。

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

在此先感谢您的帮助,

迈克尔

4

2 回答 2

0

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

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

我希望这有帮助

于 2009-12-08T23:41:03.843 回答
0

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

于 2011-02-22T13:35:05.143 回答