Я использовал учетную запись Facebook на своем веб-сайте, пока не получил некоторые проблемы, связанные с тем, что он не работает должным образом в Firefox. Я тестирую Firefox 55.0.3 (64-разрядный).
Чтобы правильно отладить его, я создал новую страницу с чистым индексом, как это:
<script>
window.fbAsyncInit = function () {
FB.init({
appId: 'mypersonalID',
cookie: true,
xfbml: true,
version: 'v2.8'
});
FB.AppEvents.logPageView();
};
(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/pt_BR/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function myClick() {
console.log('click');
FB.getLoginStatus(function (response) {
console.log(response);
});
}
</script>
<button onclick="myClick()">Debug</button>
При тестировании его на Chrome, Edge, Explorer, и т.д.. Консоль печатает правильно, однако, на Firefox, я просто вижу консольный click
, но никогда ответа от события Facebook, также, я не получаю никаких ошибок на всех.
Я не знаю, что может произойти, но это просто не работает в Firefox.
Если я вызываю FB.login(), всплывающее окно появляется, но при отмене или подтверждении входа в систему вид просто становится белым и никогда не закрывает или не возвращает обещание.
Изменение: я попытался запустить его в режиме приватного Firefox, и теперь я вижу эту ошибку:
Функция " http://connect.facebook.net/en_US/sdk.js " заблокирована, так как защита трассировки включена.
По-прежнему не знаю, как решить эту проблему.
Это особенность, уникальная для Firefox. Вы можете найти информацию о том, как отключить эту функцию в приватном режиме:
Вы также можете прочитать дополнительную информацию о защите отслеживания Firefox и о том, как она может разбивать сайты здесь:
https://developer.mozilla.org/en-US/Firefox/Privacy/Tracking_Protection