0

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

1 に答える 1

1

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 エラーが表示されますか?

アップデート

問題がページアップロードイベントで実行することである場合。スクリプトはページの最後に配置する必要があります。hereのようなもの。

于 2011-01-26T14:29:49.357 に答える