Firefox阻止Facebook Js

Pet*_*ter 9 javascript firefox facebook

随着Firefox升级到42.0我有一些奇怪的行为..

我正在调用这样的FB.init方法:

FB.init({ 
        appId: '{$appid}',
        status: true, 
        cookie: true,
        xfbml: true,
        oauth: true
    });
Run Code Online (Sandbox Code Playgroud)

但在Firefox中它被阻止,我收到警告:

" https://connect.facebook.net/en_US/all.js "上的资源被阻止,因为启用了跟踪保护.

这是默认行为,我没有设置任何额外的安全性或其他什么..

该怎么办?

编辑 - 在帮助和谷歌搜索后,这是一个更大的问题:

结果证明Firefox的Do Not Track和跟踪保护是两回事:

不跟踪在偏好设置中启用/选项>隐私>"告诉我不希望被追踪的网站".启用发送DNT标头但不阻止任何请求.

在about:config> privacy.trackingprotection.enabled中启用了跟踪保护.启用不会发送DNT标头,但会根据Disconnect的阻止列表阻止请求.因此检测2并不像检查navigator.doNotTrack那么容易,因为该属性仅设置为1.

解决方案(暂时) - 尝试做FB.init,如果错误做了一些警告..

try {
        FB.init({ 
            appId: '{$appid}',
            status: true, 
            cookie: true,
            xfbml: true,
            oauth: true
        });
    }catch(err) {
        alert('Some info for the user...');
    }
Run Code Online (Sandbox Code Playgroud)

有人有更好的解决方案吗?

lus*_*chn 6

一个简单的谷歌搜索导致此页面:https : //developer.mozilla.org/en-US/Firefox/Privacy/Tracking_Protection

您应该能够在出现消息的位置或通过停用该功能about:config。实际上,默认情况下应停用它afaik。


小智 4

从客户端来看,你不能。这是 Firefox 的安全策略。您可以在线程中阅读有关此问题的信息:https://bugzilla.mozilla.org/show_bug.cgi ?id=1226498