Всплывающее окно с разрешением Facebook заблокировано даже в случае события пользователя.Зачем? - PullRequest
6 голосов
/ 05 сентября 2011

Вот страница: http://textbookcentral.com.au/26/university-of-new-south-wales/buy/69897/acct1501/?query=

Когда "Скажи другим, что я покупаю учебник на моей стене в Фейсбуке".флажок установлен, и вы нажимаете «Запросить этот учебник», независимо от того, являются ли введенные данные формы действительными или нет, он будет пытаться сделать настенный пост на вашей стене Facebook, открывая при необходимости диалоговое окно входа в систему или диалоговое окно разрешений.*

Однако диалоговое окно не отображается, если ваш браузер заблокировал всплывающие окна.Я проверял это в Safari и Firefox.

Javascript срабатывает только тогда, когда вы нажимаете кнопку «Запросить этот учебник», но всплывающие окна по-прежнему блокируются, почему?следующий соответствующий код.)

<a href="#" class="submit button" onclick="make_facebook_request_post()">Request this textbook</a></p>
  </div>

  </form>

</div>
<script type="text/javascript">
function make_facebook_request_post() {

  if ($('#id_facebook').is(':checked')) {
    facebook.do_post(function(success) {}, 
      'I am using http://textbookcentral.com.au to buy a textbook for ACCT1501.', 'publish_stream')
  }

}
</script>

Функция facebook.do_post будет выполнять вызовы FB.api.См http://textbookcentral.com.au/site_media/static/central/js/facebook.js

1 Ответ

5 голосов
/ 20 апреля 2012

Да, они указывают это в своей документации.

http://developers.facebook.com/docs/reference/javascript/FB.login/

Вызов FB.login приводит к попытке JS SDK открыть всплывающее окно окно. Таким образом, этот метод должен вызываться только после нажатия пользователем событие, в противном случае всплывающее окно будет заблокировано большинством браузеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...