Подтвердить что ты не робот

Защита отслеживания firefox блокирует асинхронную загрузку facebook js 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.

У кого-нибудь есть идея, как решить эту проблему?

большое спасибо!

4b9b3361

Ответ 1

Защита отслеживания (включена по умолчанию в Firefox 42+) блокирует любые ресурсы из предопределенного набора доменов в режиме приватного просмотра.

Начиная с версии 42, Firefox Desktop и Firefox для Android включают встроенную защиту слежения. В окнах частного просмотра (вкладки, в Firefox для Android), Firefox будет блокировать контент, загруженный из домены, которые отслеживают пользователей на разных сайтах.

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

В настоящее время защита отслеживания использует disconnect.me основной список.

Тот факт, что script загружается асинхронно, не имеет значения, так как его домен, занесенный в черный список.

Даже если вы размещаете файл JavaScript самостоятельно, любые запросы на домены Facebook также блокируются.

Таким образом, единственный способ разрешить эти запросы - отключить защиту отслеживания в браузере.