firefox跟踪保护阻止facebook js sdk的异步加载

mmo*_*mmo 13 javascript firefox sdk facebook asynchronous

我使用以下代码在我的项目中加载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'));
Run Code Online (Sandbox Code Playgroud)

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

但它似乎只是被阻止,当我没有登录Facebook.

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

非常感谢!

Dve*_*Dve 5

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

从版本42开始,Firefox桌面和Firefox for Android包含内置的跟踪保护。在“私人浏览”窗口(Android中为Firefox中的选项卡)中,Firefox将阻止从跟踪跨站点用户的域加载的内容。

https://developer.mozilla.org/zh-CN/Firefox/Privacy/Tracking_Protection

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

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

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

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