2015-11-19 15 views
12

的異步加載我加載Facebook的JS SDK異步我用下面的代碼項目:Firefox的跟蹤保護塊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

這是2016年,仍然沒有答案? :O 現在,我只是要求我的QA工程師關閉跟蹤保護:D –

+0

是的,看起來唯一的辦法就是禁用它... –

+0

您確定它只是異步加載的腳本,而不是外部腳本時期? – PHPglue

回答

2

在隱私瀏覽模式下,跟蹤保護(默認情況下在Firefox 42+中啓用)會阻止來自預定義域集的任何資源。

從版本42開始,Firefox Desktop和Firefox的Android 包含內置跟蹤保護。在隱私瀏覽窗口 (Firefox中的Android標籤)中,Firefox將阻止從跨站點追蹤用戶的域名 加載的內容。

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

跟蹤保護目前默認使用disconnect.me的基本名單。

腳本被異步加載的事實與其被列入黑名單的域無關。

即使您自己託管JavaScript文件,也會封鎖對Facebook域的任何請求。

因此,允許這些請求的唯一方法是在瀏覽器中禁用跟蹤保護。