Facebook JavaScript SDK:FB.ui打开一个弹出窗口
我正试图在facebook iframe应用程序中显示一个带有以下代码的“贴到墙上”提要对话框:Facebook JavaScript SDK:FB.ui打开一个弹出窗口,facebook,facebook-javascript-sdk,Facebook,Facebook Javascript Sdk,我正试图在facebook iframe应用程序中显示一个带有以下代码的“贴到墙上”提要对话框: <div id="fb-root"></div> <script src="http://connect.facebook.net/en_US/all.js"> </script> <script> FB.init({ appId:'249725835046216', cookie:true,
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js">
</script>
<script>
FB.init({
appId:'249725835046216', cookie:true,
status:true, xfbml:true
});
FB.ui({ method: 'feed',
message: 'Facebook for Websites is super-cool',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
});
</script>
FB.init({
appId:'249725835046216',cookie:true,
状态:true,xfbml:true
});
ui({method:'feed',
信息:“网站Facebook超级酷”,
名称:“Facebook对话”,
链接:'http://developers.facebook.com/docs/reference/dialogs/',
图片:'http://fbrell.com/f8.jpg',
标题:“参考文档”,
描述:“对话框为应用程序与用户交互提供了一个简单、一致的界面。”
});
问题是它出现在一个新的弹出窗口中,如下所示:
而不是像这样出现而不出现在弹出窗口中:
我不希望提要对话框出现在新的弹出窗口中,因为在大多数阻止弹出窗口的现代web浏览器中。我不知道为什么会这样。请帮助。我很确定,如果用户未授权您的应用程序,您会看到一个弹出窗口。出于安全原因,Facebook采用了这种方式。如果您首先提示进行授权,那么您应该得到内联对话框
请注意,授权请求本身将是一个弹出窗口,但您只需执行一次。在SomeCards Facebook应用程序中,我的工作方式是这样的,你想要的方式。请随意获取javascript代码,它不是特定于应用程序的。我也有同样的UI问题,我也不喜欢弹出窗口 我刚找到
它帮助我们在同一窗口中重定向页面。但它并不能完美地解决我们的问题。试试这个,将FB.ui放在FB.getLoginStatus中:
FB.getLoginStatus(function(response) {
if (response.authResponse) {
FB.ui({
method: 'feed',
...
display: 'dialog'
});
}
});
在我的例子中,通过将display设置为async,问题似乎已经解决了
display: 'async',
我认为这是页面选项卡和画布的默认设置,但有时会加载一个新的弹出窗口,而不是出现在主窗口中。。
尽管设置了它(在我的例子中是页面选项卡),但从那时起我就没有注意到出现任何弹出窗口。我知道这有点旧,但我在试图为自己解决这个问题时偶然发现了这个页面,这里的答案对我都不起作用 为了其他有这个问题的人的利益,这种情况发生在我身上,因为我试图在页面加载时调用对话框。将其移动到用户触发的事件(如单击)为我解决了问题。文档中有一个“URL重定向”部分,用于: 因此,您可以在Javascript中执行
window.location=(此url)
,正确设置重定向url,这应该可以在没有弹出窗口的情况下工作
请注意,在v2.0中,提要对话框现在已被弃用,因此请查看以下内容:
要共享链接,请执行以下操作:
要共享开放式图表故事,请执行以下操作:
“display=popup”位会影响共享屏幕的外观,不会打开新窗口。显示的可能值为:
async, iframe, page, popup, touch, wap
要强制执行相反的行为,请使用display:'popup'
。如果您的FB.ui调用位于iframe中(如我的调用),并且您不希望对话框被困在iframe中,那么这将非常有用。谢谢您救了我的命!:)
https://www.facebook.com/dialog/share?
app_id=145634995501895
&display=popup
&href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
&redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer
https://www.facebook.com/dialog/share_open_graph?
app_id=145634995501895
&display=popup
&action_type=og.likes
&action_properties=%7B%22object%22%3A%22https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F%22%7D
&redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer
async, iframe, page, popup, touch, wap