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

时间:2015-11-19 16:22:53

标签: javascript facebook firefox asynchronous sdk

我使用以下代码在我的项目中异步加载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时,它似乎只是被阻止了。

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

非常感谢!

1 个答案:

答案 0 :(得分:4)

跟踪保护(在Firefox 42+中默认启用)会在隐私浏览模式下阻止来自预定义域集的所有资源。

  

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

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

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

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

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

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