2012-02-19 62 views
0

当我试图呈现一个对话,询问用户发布的墙上,对话IFRAME是我的应用程序呈现在iframe内,隐藏对话:(FB.ui呈现的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) { 
    } 
} 
); 

有人?

在此先感谢

回答

1

由facs js sdk提供的所有facebook ui体验均在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/

+0

嗨,弹出窗口被阻止在最如果它嵌套在多个JS函数调用中,那么浏览器上的例子。除此之外,即使在我的应用程序中,iFrame也能正常工作。但这个问题最近开始出现。它通常显示为一个灯箱。请说明我在哪里错了这个iFrame。 – user1219601 2012-02-20 04:24:29

+0

你的意思是* lightbox *是什么意思?你有一个例子来显示或截图吗?你提供的截图显示了我知道Facebook打开对话框的方式。 – 2012-02-20 07:37:09

+0

嗨,还有另一个地方在同一个应用程序,我使用相同的代码。但之前的iFrame是通过点击一个按钮来呈现的。请找到iFrame应如何正常呈现我的模式的屏幕截图。截图提供在[链接](http://img215.imageshack.us/img215/599/dialogue2.jpg) – user1219601 2012-02-20 09:18:30