我使用以下代码在我的项目中异步加载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时,它似乎只是被阻止了。
有没有人知道如何解决这个问题?
非常感谢!答案 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域的任何请求。
因此,允许这些请求的唯一方法是在浏览器中禁用跟踪保护。