我正在使用以下代码在我的项目中异步加载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/