Выполнить скрипт при загрузке страницы в статическом FBML - PullRequest
0 голосов
/ 26 января 2011

Как выполнить скрипт при загрузке страницы внутри статической страницы 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 Ответ

1 голос
/ 26 января 2011

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

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

<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?

UPDATE

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

...