Javascript 多个类似facebook的按钮(fb:like)不起作用:自行取消链接

Javascript 多个类似facebook的按钮(fb:like)不起作用:自行取消链接,javascript,facebook,facebook-like,facebook-javascript-sdk,Javascript,Facebook,Facebook Like,Facebook Javascript Sdk,编辑:上次更新: 所以,我们测试了更多。我使用了facebook开发者的“lintner”http://developers.facebook.com/tools/lint/。我的任何一个页面上都没有发现错误,加上lint页面上的like按钮工作正常。如果我切换回我自己的网站,我可以清楚地看到我喜欢的已经被计算了 奇怪的是。。如果我在自己的网页上删除了类似的内容,并且能够神奇地从自己的网站上添加类似的内容 我刚才做的最后一件事是将我的doctype更改为STRICT//EN,因为这是我发现的唯一

编辑:上次更新

所以,我们测试了更多。我使用了facebook开发者的“lintner”
http://developers.facebook.com/tools/lint/
。我的任何一个页面上都没有发现错误,加上lint页面上的like按钮工作正常。如果我切换回我自己的网站,我可以清楚地看到我喜欢的已经被计算了

奇怪的是。。如果我在自己的网页上删除了类似的内容,并且能够神奇地从自己的网站上添加类似的内容

我刚才做的最后一件事是将我的doctype更改为STRICT//EN,因为这是我发现的唯一与使用like按钮和我的页面不同的部分


我搜索这个bug已经有一段时间了,但似乎找不到问题所在。我使用了很多页面来获取我需要的信息:

  • (除了这些关于stackoverflow的帖子之外,还有很多关于类似问题的帖子)

    但读了这么多书后,我还是不确定到底出了什么问题。在大多数页面上,like按钮工作正常(至少对我来说,我不确定如果有人添加like会发生什么,因为我还没有发现'2'

    以下是带有like按钮的当前页面:

  • (刚刚补充)
  • 在我的例子中,最后一个按钮(nr6+7)在我按下按钮时添加了一个like,但在我按下按钮后,它会自动删除like。有一秒钟,评论框弹出,但在一瞬间它也消失了,计数器跳回到0。当我从链接1-5中删除一个类似的内容时,它会按其应该的方式删除它,并且我可以在不删除它的情况下添加它

    在我读到的内容中,为了使用
    标记,我不得不使用Facebook Javascript SDK,我已经完成了这项工作。起初,我使用了一个应用程序ID,但经过一些阅读,很明显,like按钮不需要应用程序ID

    然后,我继续寻找所需的元数据标签。这些是我在页面上放置的内容:

    <?php if($curPicTitle != false) { ?>
    <meta property="og:site_name" content="<?=URL;?>"/>
    <meta property="og:type" content="article" />
    <meta property="og:title" content="Fotoactie.nl: <?=$curPicTitle;?>"/>
    <meta property="og:url" content="<?=URL;?>pic.php?id=<?=$pic;?>" />
    <meta property="og:image" content="<?=URL;?>/photos/1/med_<?=$curPicUrl;?>"/>
    <?php } ?>
    
    
    
    看起来Facebook需要很多时间来处理你的元标签的变化。例如,admin标记花了几个小时才向我显示错误链接(如果出现错误,将布局转换为“标准”将显示一条管理消息)


    奇怪的是,我猜错误是一个错误的URL,但是meta+fb:like URL是好的。我想这是一个小错误,很快就会被修复。很遗憾,没有人知道这个问题。

    您的代码中似乎缺少
    。我很惊讶它居然能起作用。有关更多信息,请参见此:

    如果这还不能解决问题,请尝试包含此stackoverflow线程中描述的管理员id或应用程序id

    编辑:我想尝试的另一件事是将
    移动到facebook标记的正上方。我注意到它就在脚本标记的上方,靠近body标记。尽管在页面内容之后加载facebook脚本是好的(而且更可取),但据我所知,facebook标记必须保持完整

    您的标记应如下所示:

    <div id="fb-root"></div><fb:like href="http://ontwikkel.fotoactie.nl/pic.php?id=66" send="false" width="450" show_faces="false" font=""></fb:like>
    
    
    


    将脚本标记放在任何地方…

    最后一页按钮似乎对我正常工作。如果你试图测试太多的按钮,比如太快的按钮,你可能会碰到一些垃圾邮件控制?最后一个按钮确实有效,第六个按钮无效。我注意到元日期中有一点URL错误。修正了“67”,但“66”仍然不起作用。哈!我总是告诉人们Facebook不好。完全使用此问题/答案作为我未来咆哮的参考P只是开玩笑,但祝你好运。试着换新的吗?在您的fb:url中,使用&63;问号的HTML实体。Wellicht是dat het;)您应该使用IFRAME版本!!你为什么要使用fb:like这个东西,因为它被一个iframe替换了(iframe在解析fb:like标记时由一些JS加载…??Sharp!当我注意到fb root没有附加任何内容时,我删除了这个div。我将它添加回页面。谢谢你的帮助。请参阅我编辑的帖子(底部)对于最后的更改。是的,这也让我困惑。在我看来,没有这个div,Facebook开发人员可以很容易地让它工作。更不用说人们有时在同一页面上有多个like按钮,这迫使开发人员在同一文档中有几个ID相同的元素。即使是一个蹩脚的实习生也知道这是一个坏主意,但我们在这里谈论的是Facebook开发者,我可以大声抱怨他们有多糟糕。那么,在你修复了错误的斜杠后,它起作用了吗?仍然没有修复。错误的斜杠是由某种原因造成的,但我不知道在哪里。og:url和fb:like href是100%正确的,但仍然有一些页面出错。我添加了一个utf8头,以测试是否这导致了问题,但它不起作用。我甚至没有像在“66号”上那样在新图像上获得“管理错误”链接。这里有点生气:(utf-8也不是问题解决者..还有其他建议吗?对我来说,它似乎对66和67都有效。你解决了吗?如果你没有,我想说你可以直接尝试iframe-like按钮,而不是xfbml按钮。url linter为你提供iframe版本的代码,尽管你可能需要调整它的大小。
    <script src="http://connect.facebook.net/nl_NL/all.js"></script>
    <script>
      FB.init({
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true  // parse XFBML
      });
    </script>
    
    <div id="fb-root"></div><fb:like href="http://ontwikkel.fotoactie.nl/pic.php?id=66" send="false" width="450" show_faces="false" font=""></fb:like>