2010-11-04 1 views
2

Я хотел бы использовать javascript (JQuery), чтобы спросить у сервера код XFBML через ajax. Код XFBML затем будет прикреплен к DOM.Как поставить XFBML-код на ajax?

Здесь код PHP:

echo " 
<fb:serverFbml> 
    <script type=text/fbml'> 
    <fb:fbml> 
     <fb:request-form 
      action='http://myserver.com/invited.php' 
      method='post' 
      type='myserver' 
      invite='true' 
      content='yo you...'> 
      <fb:request-form-submit uid=12312312label='Send to %n ' import_external_friends=false /> 
     </fb:request-form> 
     </fb:fbml> 
    </script> 
</fb:serverFbml> 

"; 

и вот JavaScript:

function clickME() { 

    $.ajax(
      { 
       url:'http://myserver.com/fbml_ajax.php', 
       success:attachData, 

       type:'GET', 
       dataType:'html', 
       global:false 
      } 
     ); 

} 

function attachData(data) { 
    var myData = data; 
    $('#attachnow').html(data); 
} 

Я не могу заставить его работать .. это не прилагается.
Если я просто ставил XFBML на странице HTML, это работает. но если я прикреплюсь к DOM, это не так.

Это из-за тега? или это из-за данных, которые содержат \ r \ n при возврате с сервера?

ответ

6

Вам необходимо использовать FB.XFBML.parse для любого нового контента. По умолчанию FBML анализируется только при загрузке страницы. Согласно второму примеру на странице я связан, точный код будет

FB.XFBML.parse(document.getElementById('attachnow')); 

добавляется в качестве последней строки attachData функции.

+0

поэтому, должен ли я запустить FB.xFMBL.parse (данные) по данным, переданным обратно ajax сразу или подключиться к dom, а затем запустить FB.XBML.parse ('attachnow')? – murvinlai

+0

Я отредактировал свой ответ, чтобы ответить на это; надеюсь, что это помогает :) – Domenic

+1

@murvinlai - после присоединения к DOM. Обоснование: код FB, связанный с элементом в DOM (например, «document.getElementById»), поэтому вам нужно выполнить обработку и прикрепить элемент к DOM и THEN, чтобы разыскать ваш добавленный контент. – jeffreypriebe