FB.ui在我的应用程序iFrame中渲染iFrame

FB.ui renders iFrame inside my app iFrame

本文关键字:iFrame 应用程序 ui 我的 FB      更新时间:2023-09-26

当我试图呈现一个对话以要求用户在墙上发帖时,对话iframe在我的应用程序iframe中呈现,它隐藏了一半的对话:(

你可以在这里找到截图http://img59.imageshack.us/img59/3076/dialogueq.jpg

通常,它应该显示为灯箱,并且应该在应用程序iFrame外部呈现。

 FB.ui(
 {
  method: 'feed',
  message: 'Gain points and prizes with '+pageName ,
  name: 'Visit our mobile community',
  caption: pageName,
  description: desc,
  link:  'http://mydomain.com/generateLink?pageId='+pageId,
  picture: 'http://mydomain.com/public/img/Logo.png',
  user_message_prompt: 'Share your thoughts about '+ pageName +' and gain points.'
 },
 function(response) {
    postedOnFb = true;
   if (response && response.post_id) {
   }
 }
);

有人遇到过类似的问题吗?

提前感谢

facbook js-sdk提供的所有facebookui体验都在iframe中呈现。由于这意味着在画布页面和网站上都可以使用,所以它没有考虑到你的页面在facebook内部的事实。更重要的是,如果它试图做到这一点,可能会出现一些安全问题,如果它成功了,它可以为人们提供一个做XSS的好机会。

由于您的应用程序位于页面内,而且看起来您使用的屏幕分辨率较小,因此我建议您尝试在弹出版本中显示此对话框。我同意,它没有那么光滑,但嘿,至少用户可以看到所有的。

要在弹出窗口中打开对话框,请指定"显示"参数,如下所示:

FB.ui(
 {
  method: 'feed',
  display: 'popup',
  message: 'Gain points and prizes with '+pageName ,
  name: 'Visit our mobile community',
  caption: pageName,
  description: desc,
  link:  'http://mydomain.com/generateLink?pageId='+pageId,
  picture: 'http://mydomain.com/public/img/Logo.png',
  user_message_prompt: 'Share your thoughts about '+ pageName +' and gain points.'
 },
 function(response) {
    postedOnFb = true;
   if (response && response.post_id) {
   }
 }
);

你可以在这里阅读更多信息:http://developers.facebook.com/docs/reference/javascript/FB.ui/