Html 点击后立即关闭类似Facebook的按钮弹出对话框

Html 点击后立即关闭类似Facebook的按钮弹出对话框,html,facebook,facebook-javascript-sdk,fbml,Html,Facebook,Facebook Javascript Sdk,Fbml,我只是想在测试页面上测试一些类似的功能,但却遇到了意想不到的行为。当我点击like按钮时,对话框(你可以在其中添加文本并张贴到墙上)会弹出大约半秒钟,然后自动关闭。like按钮本身会变成一个链接,上面写着“确认”。我在这里真的是赤裸裸的,不知道会出什么问题。我在用FBML。以下是我的测试页面的完整代码: <!DOCTYPE html> <html> <head> <title>Facebook Like Test</title&g

我只是想在测试页面上测试一些类似的功能,但却遇到了意想不到的行为。当我点击like按钮时,对话框(你可以在其中添加文本并张贴到墙上)会弹出大约半秒钟,然后自动关闭。like按钮本身会变成一个链接,上面写着“确认”。我在这里真的是赤裸裸的,不知道会出什么问题。我在用FBML。以下是我的测试页面的完整代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Facebook Like Test</title>
  </head>

  <body>
    <div id="fb-root"></div>

    <script>
         window.fbAsyncInit = function () {
            FB.init({
                appId: 'myid',
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                xfbml: true  // parse XFBML
            });
        };

        // Load the SDK Asynchronously
        (function (d) {
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
        } (document));

    </script>

    <h1>Facebook Like Testing</h1>
    <div>
        <fb:like href = "http://www.example.com?id=1"></fb:like>
    </div>
    <div>
        <fb:like href = "http://www.example.com?id=2"></fb:like>
    </div>
    <div>
        <fb:like href = "http://www.example.com?id=3"></fb:like>
    </div>
    <div>
        <fb:like href = "http://www.example.com?id=4"></fb:like>
    </div>  
  </body>
</html>

类似Facebook的测试
window.fbAsyninit=函数(){
FB.init({
appId:'myid',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
};
//异步加载SDK
(职能(d){
var js,id='facebook jssdk';if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
d、 getElementsByTagName('head')[0].appendChild(js);
}(文件);
类似Facebook的测试

我只是简单地附加了一个任意字符串作为查询字符串,以使hrefs唯一。这里可能出了什么问题?

控制台输出如何?有什么错误吗

我想,你应该检查你的应用程序和本地环境的域设置。你的例子很适合我


我脑海中闪现的最后一件事是,如果你在使用Chrome,它有时会阻止跨域js请求,所以我也会寻找它。

好吧,我将回答我自己的问题,因为我发现了这个问题,希望其他任何人都能得到这个错误的答案

事实证明,问题不在于我的代码,而在于我指定的href。我找到了答案
. 这与我实施此策略的网站有关,因为我对该网站了解不够,或者被标记为“可疑”

我也遇到了同样的问题,问题是我在chrome上禁用了cookies。一旦我启用了它们,它又开始工作了

如果您提到的测试页面位于暂存服务器上,或者使用的URL不是Like实际用于的站点,则会导致Like对话框关闭,因为在用户尝试喜欢该页面时会执行域匹配检查

我在过去发现,在live server上的隐藏页面上执行测试将得到您想要的结果

如果您在第一次测试Like按钮后对页面进行了更改,请确保使用页面上的Facebook开发者调试工具重新构建Facebook存储的缓存页面。
仔细检查您共享的URL的开放图声明: og:image声明中缺少域名的简单错误将导致共享对话框弹出窗口关闭,而没有任何控制台或错误消息。
(只需执行control-u以查看HTML页面的源代码,查看您的标题区域中的og:image、og:url等即可)

您好,感谢您的回复。不,我的输出没有错误。我的应用程序配置在“应用程序域”下有mydomain.com。我甚至尝试过使用FB生成的代码,但仍然存在这个问题。至少我很困惑。那么,在测试脚本时,您是否直接访问url“mydomain.com”?因为你的应用程序需要直接从你在facebook的应用程序设置中设置的域运行。您始终可以为此使用主机文件。