Вставка кнопки входа в Facebook с innerHTML не работает в Chrome - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь, чтобы моя веб-страница реагировала, если пользователь уже вошел в систему через Facebook. Когда они вошли в систему, я хочу, чтобы кнопка «Войти через Facebook» обычно показывала кнопку «Настройки / Выход из системы». Если пользователь не вошел в систему, я хочу, чтобы он показывал кнопку входа в Facebook.

Код, который я должен сделать, выглядит следующим образом, где я использую innerHTML, чтобы установить то, что я хочу.

var login_area = document.getElementById("login-area");
if (response.status === 'connected') {
  // Logged into your app and Facebook.
  user_id = response.authResponse.userID;
  login_area.innerHTML = '<button type="button" class="btn btn-outline-danger btn-sm" onclick="settings()"><i class="fas fa-cog fa-lg"></i></button><button id="login-button" type="button" class="btn btn-outline-danger btn-sm" onclick="logout()"><i class="fa fa-sign-out-alt fa-lg" aria-hidden="true"></i></button>';
} else {
  // The person is not logged into your app or we are unable to tell.
  login_area.innerHTML = '<div class="fb-login-button" data-max-rows="1" data-size="medium" data-button-type="continue_with" data-show-faces="false" data-auto-logout-link="false" scope="user_friends" data-use-continue-as="false"></div>';
}

Этот код работает точно так, как задумано в Firefox, но для Chrome кнопка входа в систему не отображается. Это там, когда я иду, чтобы проверить элемент, но он ничего не отображает на реальной странице.

Что происходит?

1 Ответ

0 голосов
/ 05 мая 2018

Потому что Facebook SDK не подозревает, что вы добавили новый тег в документ. Вы должны использовать FB.XFBML.parse (https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/), чтобы сообщить об этом SDK Facebook.

...