2011-01-26 59 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

我加入,我使用的腳本。當我把上面的腳本函數調用,並點擊它的工作原理 –