如何使用Javascript/FB.ui打开和关闭弹出窗口

如何使用Javascript/FB.ui打开和关闭弹出窗口,javascript,facebook,Javascript,Facebook,我编写了一个简单的函数来启动facebook共享对话框弹出窗口。问题是,当用户提交共享表单时,html链接中的重定向配置代码会在弹出窗口中将用户发送回我的站点,而不是关闭弹出窗口并显示fb发送回的响应 function popwindow(url) { newwindow=window.open(url,'name','height=400,width=700'); if (window.focus) {newwindow.focus()} } 使用html <a href="#" on

我编写了一个简单的函数来启动facebook共享对话框弹出窗口。问题是,当用户提交共享表单时,html链接中的重定向配置代码会在弹出窗口中将用户发送回我的站点,而不是关闭弹出窗口并显示fb发送回的响应

function popwindow(url)
{
newwindow=window.open(url,'name','height=400,width=700');
if (window.focus) {newwindow.focus()}
}
使用html

<a href="#" onclick="popwindow('http://www.facebook.com/dialog/feed?app_id=XXX&link=somelink&display=dialog&redirect_uri=http://myurl.net/response/')">Share on Facebook</a>

如何编写一个html链接来调用弹出窗口并让FB.ui处理它?

您不必担心自己会弹出一个对话框,
FB.ui
调用会为您处理这个问题。这是一个工作示例这是一个添加了一些HTML的示例:

<input type="button" onclick="share_prompt()" value="Share" />

<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript" charset="utf-8"></script>
<div id="fb-root"></div>    
<script type="text/javascript" charset="utf-8">
FB.init({
    appId: 'YOUR_APP_ID', 
    status: true, 
    cookie: true,
    xfbml: true
});

function share_prompt()
{


    FB.ui(
       {
         method: 'feed',
         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.',
         message: 'Facebook Dialogs are easy!'
       },
       function(response) {
         if (response && response.post_id) {
           alert('Post was published.');
         } else {
           alert('Post was not published.');
         }
       }
     );
 }

</script>

FB.init({
appId:'你的应用程序ID',
状态:正确,
曲奇:是的,
xfbml:对
});
函数共享提示()
{
FB.ui(
{
方法:“提要”,
名称:“Facebook对话”,
链接:'http://developers.facebook.com/docs/reference/dialogs/',
图片:'http://fbrell.com/f8.jpg',
标题:“参考文档”,
描述:“对话框为应用程序与用户交互提供了一个简单、一致的界面。”,
留言:“Facebook对话很简单!”
},
功能(响应){
if(应答和应答后id){
警报(“发布帖子”);
}否则{
警报(“未发布帖子”);
}
}
);
}

您不必担心自己会弹出一个对话框,
FB.ui
调用会为您解决这个问题。这是一个工作示例这是一个添加了一些HTML的示例:

<input type="button" onclick="share_prompt()" value="Share" />

<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript" charset="utf-8"></script>
<div id="fb-root"></div>    
<script type="text/javascript" charset="utf-8">
FB.init({
    appId: 'YOUR_APP_ID', 
    status: true, 
    cookie: true,
    xfbml: true
});

function share_prompt()
{


    FB.ui(
       {
         method: 'feed',
         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.',
         message: 'Facebook Dialogs are easy!'
       },
       function(response) {
         if (response && response.post_id) {
           alert('Post was published.');
         } else {
           alert('Post was not published.');
         }
       }
     );
 }

</script>

FB.init({
appId:'你的应用程序ID',
状态:正确,
曲奇:是的,
xfbml:对
});
函数共享提示()
{
FB.ui(
{
方法:“提要”,
名称:“Facebook对话”,
链接:'http://developers.facebook.com/docs/reference/dialogs/',
图片:'http://fbrell.com/f8.jpg',
标题:“参考文档”,
描述:“对话框为应用程序与用户交互提供了一个简单、一致的界面。”,
留言:“Facebook对话很简单!”
},
功能(响应){
if(应答和应答后id){
警报(“发布帖子”);
}否则{
警报(“未发布帖子”);
}
}
);
}

window.focus不是一个布尔值,它是一个函数,因此它的计算结果总是真实的。您需要做的是查看facebook开发文档窗口。focus不是一个布尔值,它是一个函数,因此它的计算结果总是真实的。您需要做的是查看facebook开发文档,我看到这是javascript,但是HTML怎么称呼javascript呢?或者你是说所有的JS都应该放在html内联中?修改了我的答案,希望能有所帮助!但其中存在一个问题,当用户授权后,数据以get请求的形式从浏览器发送,并且在URL上可见时,用户可以更改要发布的数据。如何防止这种情况发生?我知道这是javascript,但是HTML怎么称呼这种javascript呢?或者你是说所有的JS都应该放在html内联中?修改了我的答案,希望能有所帮助!但其中存在一个问题,当用户授权后,数据以get请求的形式从浏览器发送,并且在URL上可见时,用户可以更改要发布的数据。如何预防?