2011-01-26 2 views
0

Как я могу выполнить скрипт при загрузке страницы внутри статической страницы 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 (версия в facebook JS). Вы можете найти документацию по Ajax вызова here

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

<script><!-- 

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

    //--> 
</script> 

UPDATE

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

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

если проблема запустить его на событие странице загрузки. Вы должны поместить скрипт в конец своей страницы. Что-то вроде описано here.

+0

Я пробовал это, но он не работает :( –

+0

Что именно не работает? Вы видите какие-либо ошибки js в консоли? Пытаетесь ли вы поместить некоторые предупреждения, чтобы увидеть, запускается ли часть скрипта в момент, когда вы хотите? –

+0

Я добавил скрипт, который использовал, и когда я держу вышеприведенный скрипт в функции и звоню по клику, он работает –

Смежные вопросы