【发布时间】:2009-11-27 16:10:47
【问题描述】:
我目前正在开发一个包含 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)和它不会运行。
我希望我在描述中足够清楚,有人有什么想法吗?
提前感谢您的帮助,
迈克尔
【问题讨论】:
-
如果您的 iframe 位于另一个域中,则无法访问父页面/窗口。也许 facebook 有另一种机制,您可以通过它启动“streamPublish()”...
-
我担心这是不可能的,不过感谢你把最后一颗钉子钉在棺材里。
标签: javascript iframe fbml