Facebook "Like"按钮(HTML5)无法正常工作



所以。。。在我工作的一个网站上,有一个Facebook的"点赞"按钮,点击后会变成灰色,要取消点赞,请点击灰色的"点"按钮中的"X"。

问题是…它不能正常工作。在IE9中,只要你点击"赞","赞"按钮就会变成一个小文本框,经过仔细检查,它实际上是一个试图放入插槽的Facebook评论窗口!在Firefox和Safari(均在Windows 7上(中,如果你点击"点赞",按钮会变成灰色,但有时(似乎是随机的(,如果你试图通过点击"X"来"不同",它会成为我FB个人资料图片的顶部,而且它似乎再次试图将Facebook窗口塞进那个位置。

我不想要一个Facebook评论窗口或任何东西——我只想切换FB"点赞"按钮。

根据FB开发人员的信息,我在Javascript之前有这个:

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

在那之后,我有:

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

按钮周围的代码,同样根据FB开发者页面,是:

<div class="fb-like" data-href="http://www.facebook.com/(page to be liked)" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>

该网站还没有上线,所以我不能真正提供一个链接,让你可以尝试,也不能把它放在网上。

此外,原始代码有上面提到的Javascript,但在js.src赋值的末尾是一个appid。删除它没有什么区别。

还有一个推特链接使用了类似的变量,但我试图将其全部删除,但无济于事;我觉得可能是干扰。

我还应该注意什么??

(顺便说一句,我无法在Chrome或Opera中重现这个问题。事实上,在Opera中,渲染有点慢。看起来是这样的:1(点击"点赞"。2(出现了看起来像文本框但实际上是压缩的FB评论框的东西。3( 显示灰色的"点赞"按钮。如果你点击断开连接,同样的事情会反过来发生。我开始认为这可能是Facebook的一个bug,而不是我的。(

好吧,我至少在互联网爆炸端找到了解决这个问题的方法!

问题实际上是Facebook如何渲染"点赞"按钮。据我所知,情况如下:1( 用户单击"点赞"2( 用户可能需要登录到Facebook并"确认"点赞。3( Facebook将用户登录并在页面上标记为"赞"。4( Facebook天桥出现。5( "点赞"按钮变灰。

这是问题的第四步,部分原因是我们在div标记中嵌入了"Like"按钮。我们的CSS专门将溢出设置为"隐藏",这意味着任何不适合"点赞"按钮空间的内容都会被屏蔽。因此,理论上,当飞越超出"点赞"按钮的范围时,它根本不应该是可见的。然而,似乎有些浏览器基本上呈现了所有内容(包括飞越(,然后将该内容推到div标记的最后(换句话说,评论框的右下角(,结果,"点赞"按钮被完全推掉,这被视为溢出,因此被隐藏。

现在,我发现,第4步和第5步似乎是在比赛中,看哪一步可以先完成!如果步骤4首先发生,那么最后渲染的是灰色的"点赞"按钮——这正是我想要的。但是,如果步骤5首先发生,那么最后呈现的是评论框,其中的一部分现在是可见的,我需要将"点赞"按钮变灰。我想,如果我真的强迫整个Facebook盒子(通过div标签(离开,然后让它回来,渲染会重置,我就会得到我想要的。它确实有效——前提是我至少延迟1毫秒,否则第5步将在第4步完成之前完成。这似乎解决了IE存在的问题。唯一的问题是,在非常非常小的一秒钟内,人们可以看到Facebook按钮消失了,我们必须看到它左边的推特按钮向右移动,然后当FB按钮回来时又回到左边。

此外,这个修复程序并不能真正解决Firefox中的上述问题:在Firefox中,用户仍然可以在渲染过程中单击按钮。(这需要一秒钟的时间。(如果用户试图在按钮完成渲染之前取消"点赞",则用户将获得评论框的该部分。这似乎完全是脸书的末日,不幸的是,这意味着它超出了我的控制范围。我所能做的就是希望普通用户不会对鼠标按钮如此兴奋!

这不是一个100%的解决方案,但与我以前的情况相比,这是一个巨大的改进!

相关内容

  • 没有找到相关文章

最新更新