【发布时间】:2021-10-30 04:45:32
【问题描述】:
随着 Firefox 升级到 42.0,我遇到了一些奇怪的行为..
我正在像这样调用 FB.init 方法:
FB.init({
appId: '{$appid}',
status: true,
cookie: true,
xfbml: true,
oauth: true
});
但在 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...');
}
谁有更好的解决方案?
【问题讨论】:
-
这是否发生在
Private Browsing window中? -
在我的 Firefox 42.0 上它可以工作。这可能是您的问题之一......
-
您好,您是如何解决这个问题的?我的意思是,解决方案不能只是进入 about:config 因为系统的用户不会这样做......
-
嗨,它基于客户端设置..
标签: javascript facebook firefox