当我试图呈现一个对话以要求用户在墙上发帖时,对话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/