Выполнить скрипт при загрузке страницы в статическом FBML

Как выполнить скрипт при загрузке страницы внутри статической страницы FBML?

Я хочу сделать ajax-вызов моего приложения, когда страница загружается и отображает некоторые данные.

Я попробовал следующий скрипт, но он не работает. Я не получаю никаких сообщений ни об успехе, ни об ошибке

<script type="text/javascript"><!--
 var ajax = new Ajax(); 
 ajax.responseType = Ajax.JSON;
 ajax.ondone = function(data) {          
  new Dialog().showMessage("Success", "Got Response");
 }

  ajax.onerror = function(data) {          
   new Dialog().showMessage("Error", "Failure");
  }

  ajax.requireLogin = false;
  ajax.post('http://www.xyz.com/abc');

 //--></script>

Если я сделаю это функцией и вызову ее по клику, это сработает, и я получу сообщение об успехе

<a href="#" onclick="on_load(); return false;">Click</a>
<script type="text/javascript"><!--
function on_load() {
 var ajax = new Ajax(); 
 ajax.responseType = Ajax.JSON;
 ajax.ondone = function(data) {          
  new Dialog().showMessage("Success", "Got Response");
 }

  ajax.onerror = function(data) {          
   new Dialog().showMessage("Error", "Failure");
  }

  ajax.requireLogin = false;
  ajax.post('http://www.xyz.com/abc');
 }

 //--></script>

1 ответ

Вы должны использовать FBJS (версия JS на Facebook). Вы можете найти документацию по ajax call здесь

это будет что-то вроде

<script><!--

      var ajax = new Ajax();
      ajax.ondone = function(data) {
        //do something
      }
      ajax.post('http://example.com/testajax.php');    

   //-->
</script>

ОБНОВИТЬ

попробуйте добавить следующие строки, просто чтобы убедиться, что это не ошибка сервера, а тип ответа.

req.responseType=Ajax.FBML;    
ajax.onerror=function(data){
    alert("Something went wrong. Please, try again.");
}

ResponseType может быть одним из Ajax.RAW, Ajax.JSON или Ajax.FBML.

Вы используете FireBug? Вы видите звонок на сервер или какую-либо ошибку JS?

ОБНОВИТЬ

если проблема заключается в том, чтобы запустить его на странице загрузки события. Вы должны поместить скрипт в конец вашей страницы. Нечто подобное описано здесь.

Другие вопросы по тегам