我正在尝试将Facebook Like-buttons添加到我建立的网站上。该网站包含使用我公司销售的不同产品的“提示和提示”。每个这样的“提示”应该可以“赞”。
问题是,当我点击“赞”按钮时,页面会重新加载。
在Mac上的Firefox 4中,我进入了一个无限重新加载循环,每次重新加载调用一个Facebook弹出窗口,再次关闭,然后页面再次重新加载等等。
在Mac上的Chrome和Opera中,该页面仅重新加载一次。然后它似乎忘了我喜欢这个页面。
“提示”显示在不同的页面上,因此我在任何一个页面上都没有多个Like按钮。
我正在使用XFBML语法,但我也尝试使用iFrame版本,结果相同。
<fb:like href="http://www.vissteduatt.com/tips?hint_id=120" layout="button_count" show_faces="false" width="50" font="verdana"></fb:like>
您可以在http://www.vissteduatt.com/tips?hint_id=120看到该页面 - 但不会显示“赞”按钮,因为它无法正常工作且网站处于实时状态。
我在fb:like标签上指定href属性的原因是URL中还有其他属性,这些属性可能会更改。因此,我将URL“规范化”为仅包含必要的内容。
在针对此问题的解决方案进行了大量搜索之后,我发现可以使用href将用户点击Like按钮重定向到另一个页面,例如应用程序的Facebook Wall。我认为这可能是重新加载的原因,但是当我删除href属性时没有任何改变。
我正在使用javascript的异步初始化代码:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: '146368105420237', status: true, cookie: true, xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/sv_SE/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
非常感谢任何帮助!
更新:
自从Firefox 3.6(!)
除了允许来自Facebook的第三方Cookie之外,似乎没有其他解决方法。我试过这个,它确实阻止了无限循环。但是,单次重新加载仍然存在一些问题,这些问题发生在Firefox,Chrome和Opera等。
我无法在IE中测试,因为我的IE8在工作时根本不会加载Like-button。
请参阅以下链接,了解有关该主题的讨论:
http://www.facebook.com/topic.php?uid=14696440021&topic=16716
更新:
我发现IE中的Like-button解决方案没有出现在这里:
Facebook like button showing in Firefox but not showing in IE
现在,IE中的按钮与其他浏览器中的行为相同。在“喜欢”页面后仍然可以重新加载/重置按钮。