我目前正在开发一个有iFrame的Facebook应用程序。iFrame加载一个Java applet (因此FBML Page只是一个页眉、页脚和FBML函数的包装器)。
例如,当前的情况是,Java applet有一个事件(用户玩完了游戏),并且它在iFrame页面上执行javascript调用。然后它需要做的就是在父窗口中调用一个javascript (Facebook.streamPublish()),这样用户就可以发布他的分数/事件/输赢。
FBML页面上的iFrame代码:
<fb:iframe id='appletIframe' frameborder='0' resizable='true' scrolling = 'no' name='appletIframe' src='appletPage.php'></fb:iframe>每次我尝试与父进程通信时,都会收到拒绝访问的消息,因为这是一个跨域调用。我想知道是否有可能使用Facebook.connect或其他技术来调用父级,或者是否有任何其他方法。如果用户完成游戏,在iFrame调用和家长调用之间应该有一个最小的延迟。
我在iFrame中做小程序的原因是,因为小程序是由deployJava (Sun发布的类)部署的,如果我在facebook FBML页面上运行它,Javascript导航器类将被附加(a_navigator),并且它不会运行。
我希望我的描述足够清楚了,谁有什么想法?
先感谢你的帮助,
迈克尔
发布于 2009-12-09 07:41:04
你好,我刚刚经历了这个问题,并想做一些像你和我觉得黑客.But我所做的是使用它yourApplet.getAppletContext().showDocument(url,"_parent");.This帮助我重定向到其他窗口,在那里我有脚本来publish.In这个新窗口,我有一个按钮,通过javascript发布一个story.This按钮是不必要的
使用"_parent“很重要,这样你就可以重定向父窗口。
我希望这能帮上忙
发布于 2011-02-22 21:35:05
老问题。但是这里有一个非常好的资源http://softwareas.com/cross-domain-communication-with-iframes
https://stackoverflow.com/questions/1809558
复制相似问题