单击 Facebook Like 按钮会重新加载页面

发布于 2024-10-31 22:24:48 字数 2165 浏览 0 评论 0原文

我正在尝试将 Facebook Like 按钮添加到我构建的网站中。该网站包含使用我公司销售的不同产品的“提示和技巧”。每个这样的“提示”都应该可以“喜欢”。

问题是,当我单击“赞”按钮时,页面会重新加载。

在 Mac 上的 Firefox 4 中,我陷入了无限重新加载循环,每次重新加载都会调用 Facebook 弹出窗口,该窗口再次关闭,然后页面再次重新加载,等等。

在 Mac 上的 Chrome 和 Opera 中,页面仅重新加载一次。然后它似乎忘记了我喜欢这个页面。

“提示”显示在单独的页面上,因此我在任何单个页面上都没有多个“赞”按钮。

我使用的是 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<查看该页面/a> - 但“赞”按钮不会显示,因为它无法正常工作并且该网站处于活动状态。

我在 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”按钮。

有关该主题的讨论,请参阅下面的链接:
http://www.facebook.com/topic.php?uid= 14696440021&topic=16716

更新:
我在这里找到了 IE 中“点赞”按钮未显示的解决方案:
Facebook Like 按钮在 Firefox 中显示,但在 Firefox 中不显示IE

现在,该按钮在 IE 中的行为与在其他浏览器中的行为相同。在“喜欢”页面后仍然可以重新加载/重置按钮。

I'm trying to add Facebook Like-buttons to a site I've built. The site contains "hints & tips" for using different products my company sells. Each such "hint" should be possible to "Like".

The problem is that when I click the Like-button, the page reloads.

In Firefox 4 on Mac, I get into an infinite reload loop, where every reload calls up a Facebook popup window, that closes again, and then the page reloads again etc etc.

In Chrome and Opera on Mac, the page only reloads once. It then seems to forget that I liked the page.

The "hints" are displayed on separate pages, so I don't have multiple Like-buttons on any single page.

I'm using the XFBML syntax, but I have also tried using the iFrame version, with the same result.

<fb:like href="http://www.vissteduatt.com/tips?hint_id=120" layout="button_count" show_faces="false" width="50" font="verdana"></fb:like>

You can see the page at http://www.vissteduatt.com/tips?hint_id=120 - the Like-button is not displayed though, since it doesn't work correctly and the site is live.

The reason I have specified an href attribute on the fb:like tag is that there are also other attributes in the URL, and these might change. Therefore I "normalise" the URL to only include what is necessary.

After googling quite a bit for the solution to this problem, I found mentions that the href can be used to redirect a user clicking on the Like-button to another page, like the application's Facebook Wall. I thought this might be the reason for the reload, but nothing changed when I removed the href attribute.

I'm using the async init code for 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>

Any help would be greatly appreciated!

UPDATE:
This seems to be a known issue ever since Firefox 3.6(!)

There seems to be no workaround other than the user allowing third party cookies from Facebook. I've tried this, and it does stop the infinite loop. There are still some problems with a single reload however, and these occur in Firefox, Chrome and Opera alike.

I haven't been able to test in IE, because my IE8 at work simply won't load the Like-button at all.

See link below for a discussion on the topic:
http://www.facebook.com/topic.php?uid=14696440021&topic=16716

UPDATE:
I found the solution to the Like-button not showing up in IE here:
Facebook like button showing in Firefox but not showing in IE

Now the button behaves the same in IE as in other browsers. Still get the reload/reset of the button after "Liking" a page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文