【问题标题】:Communicating with parent (Facebook FBML Page) from iFrame (Local page)从 iFrame(本地页面)与父级(Facebook FBML 页面)通信
【发布时间】: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


【解决方案1】:

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

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

希望对你有帮助

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多