当我尝试渲染一个对话框,要求用户在他的墙上发帖时,对话框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) {
}
}
);
任何遇到类似问题的人?
提前致谢
答案 0 :(得分:1)
facbook js sdk提供的所有facebook ui体验都在iframe中呈现。由于这既适用于画布页面和网站,也没有考虑到您的页面在Facebook内部的事实。 更重要的是,如果它试图这样做可能会有一些安全问题,如果它有效,它可以为人们提供一个很好的机会XSS。
由于您的应用程序位于页面内,并且看起来您使用的是小分辨率的屏幕,我建议您尝试在其弹出版本中显示此对话框。我同意,它不是那么光滑但是嘿,至少用户将能够看到所有这些。
要在弹出窗口中打开对话框,请指定“display”参数,如下所示:
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/