Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox阻止Facebook Js_Javascript_Facebook_Firefox - Fatal编程技术网

Javascript Firefox阻止Facebook Js

Javascript Firefox阻止Facebook Js,javascript,facebook,firefox,Javascript,Facebook,Firefox,随着Firefox升级到42.0,我有了一些奇怪的行为 我这样调用FB.init方法: FB.init({ appId: '{$appid}', status: true, cookie: true, xfbml: true, oauth: true }); 但在Firefox中,它被阻止,我得到警告: 由于启用了跟踪保护,“”处的资源被阻止。 这是默认行为,我没有设置任何额外的安全性或其他 怎么办 编

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

我这样调用FB.init方法:

FB.init({ 
        appId: '{$appid}',
        status: true, 
        cookie: true,
        xfbml: true,
        oauth: true
    });
但在Firefox中,它被阻止,我得到警告:

由于启用了跟踪保护,“”处的资源被阻止。

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

怎么办

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

Firefox的不跟踪和跟踪保护是两个不同的东西:

不跟踪在首选项/选项>隐私>“告诉网站我不想被跟踪”中启用。启用会发送DNT标头,但不会阻止任何请求

跟踪保护在about:config>privacy.trackingprotection.enabled中启用。启用不会发送DNT标头,但会根据断开连接的阻止列表阻止请求。因此,检测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...');
    }

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

一个简单的谷歌搜索将导致此页面:


您应该能够在消息出现的地方停用该功能,或者通过
about:config
。默认情况下,它应该被禁用。

从客户端,您不能。这是Firefox的安全策略。您可以在thread:

中了解此问题。解决此问题的一种方法是在加载所有脚本资源后检查FB对象是否存在。通过这种方式,无论是什么原因导致脚本加载失败,我们都可以了解:

$(window).on("load", function() {

    // If Facebook SDK failed to load ... 
    if (typeof FB === "undefined") {

         // ... then change interface/set global variable to handle missing FB

    }

});

这是否发生在
私人浏览窗口中
?在我的Firefox 42.0上它可以工作。这可能是你的问题之一…嗨,你是如何解决这个问题的?我的意思是,解决方案不能只是进入about:config,因为系统的用户不会这样做…嗨,它基于客户端设置..谢谢。。由于我需要FB方法进行登录,如何自动停用此跟踪保护?通过javascript而不是用户?如果可以自动停用它,那会很奇怪,你不这么认为吗?这将使跟踪保护的整个意义变得毫无意义……因为它在默认情况下不应该被激活,但应该没有问题。我刚刚升级了Firefox,并且它在默认情况下是打开的(至少对我来说)。我相信很多用户都会保持这种状态。最好用javascript检测并向用户发出警告。。我尝试了“navigator.doNotTrack”,但这不起作用,因为这是跟踪保护!仍然在寻找至少能检测到“跟踪保护”的解决方案……升级firefox会保留您的设置,这一点也不奇怪。我也做了同样的事情,它对我有用答案在这里