Если facebook больше не поддерживает fbml/xfbml и предусмотренные для них обработчики событий, то какова альтернатива iframe?

Facebook в настоящее время имеет обработчики событий для событий Facebook, таких как нравится/рекомендует. Но это доступно только для версии кода xfbml. Поскольку facebook больше не поддерживает fbml/xfbml (http://developers.facebook.com/docs/reference/plugins/like/) как мы прослушиваем события в iframe? Вы не можете использовать методы javascript, прослушивающие идентификаторы onclick и т. д., особенно для фреймов, принадлежащих facebook/twitter. Есть ли другое решение для этого?

Спасибо, но,

Спасибо. Я уже использую новый Javascript SDK. Прокрутите вниз мой код, но я предполагаю, что это работает только для версии кода «xfbml» для кнопки «Нравится» на Facebook? то же самое относится и к iframe? Предположение основано на этом тексте на http://developers.facebook.com/docs/reference/plugins/like/:

Версия XFBML (также доступна с разметкой, совместимой с HTML5) более универсальна, но требует использования JavaScript SDK. XFBML динамически изменяет свою высоту в зависимости от того, есть ли изображения профиля для отображения, дает вам возможность (через библиотеку Javascript) прослушивать подобные события, чтобы вы знали в реальном времени, когда пользователь нажимает кнопку «Нравится». , и это всегда дает пользователю возможность добавить необязательный комментарий к лайку. Если пользователи добавляют комментарий, история, опубликованная на Facebook, получает больше внимания.

window.fbAsyncInit = function() {

   FB.init ({
     appId      :  ,// App ID
     channelUrl : ,// Channel File
     status     : true, // check login status
     cookie     : true, // enable cookies to allow the server to access the session
     xfbml      : true  // parse XFBML

   });

    // Listen to click event 
       FB.Event.subscribe('edge.create', function(response) {
     // Do something, e.g. track the click on the "Like" button here
      $('#someDiv').show();

     });

 };

 // Load the SDK Asynchronously
(function() {
 var e = document.createElement('script');
 e.type = 'text/javascript';
 e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
 e.async = true;
 document.getElementById('fb-root').appendChild(e);
 }());

person WannaLearn    schedule 09.01.2012    source источник


Ответы (1)


Да, вы можете подписаться на события с помощью нового Javascript SDK. См. здесь: https://developers.facebook.com/docs/reference/javascript/ и https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

person DMCS    schedule 09.01.2012
comment
короче.. эти события работают только для xfbml.. и если xfbml не будет поддерживаться, есть ли какие-то другие обходные пути для iframe? - person WannaLearn; 09.01.2012
comment
попробовал iframe как код кнопки и попытался прослушать с опубликованным кодом, и он не фиксирует подобное событие, но это происходит, когда я использовал код xfbml. - person WannaLearn; 10.01.2012
comment
Поскольку код iframe не зависит от загрузки Framework на странице хостинга, я сомневаюсь, что он вызовет какие-либо события для javascript. Попробуйте использовать версию HTML5, если вы не хотите использовать версию xfbml. FWIW, любой из трех будет выводить похожий контент, поэтому нет ничего плохого в том, чтобы отказаться от необработанного html-кода iframe. - person DMCS; 10.01.2012
comment
спасибо .. версия html5 работает нормально .. Я просто пытался посмотреть, есть ли обходной путь для iframe, потому что они загружаются намного быстрее на сайте, а также не мешают другим всплывающим окнам ajax на сайте, таким как html5 и версии xfbml, которые вызывают загрузку фреймов - person WannaLearn; 10.01.2012