我正在使用以下代码在我的项目中异步加载facebook js sdk:

window.fbAsyncInit = function () {
    FB.init({
        appId: settings.facebookAppId,
        cookie: true,  // enable cookies to allow the server to access the session
        xfbml: true,  // parse social plugins on this page
        version: 'v2.0' // use version 2.0
    });
    FB.Canvas.setAutoGrow();
};

// Load the SDK asynchronously
(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/de_DE/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

自从Firefox跟踪保护以来,这对我来说很好。
我注意到在firefox 42.0中,跟踪保护阻止了facebook js sdk的异步负载。

但它似乎只在我未登录Facebook时被阻止。

有谁知道如何解决这个问题?

非常感谢!

最佳答案

在私有(private)浏览模式下,“跟踪保护”(在Firefox 42+中默认启用)会阻止来自一组预定义域的任何资源。



https://developer.mozilla.org/en-US/Firefox/Privacy/Tracking_Protection

当前,跟踪保护默认情况下使用disconnect.me的基本列表。

脚本异步加载的事实与将其列入黑名单的域无关。

即使您自己托管JavaScript文件,对Facebook域的任何请求也将被阻止。

因此,允许这些请求的唯一方法是在浏览器中禁用跟踪保护。

关于javascript - Firefox跟踪保护阻止Facebook JS SDK的异步加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33809224/

10-10 08:24