点击Facebook Like按钮重新加载页面

时间:2011-04-14 11:57:03

标签: javascript facebook facebook-like

我正在尝试将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中的按钮与其他浏览器中的行为相同。在“喜欢”页面后仍然可以重新加载/重置按钮。

0 个答案:

没有答案