-2

私はそのようなコードを持っています:

<script>
function GetData(json)
{
.......

code1()
[or]
code2()
[or]
code3()

}
</script>

GetData任意のオプション (code1、code2、code3) で呼び出したい。

例: 次のようなオプションで code1 と code3 が壊れている間、GetDataどのように呼び出すことができますか:code2()

<script>
code2();
document.write("<script src=\".....callback=GetData\"><\/script>");
</script>

ご協力いただきありがとうございます。

4

2 に答える 2

2

以前の質問を読み、必要なものを正確に理解しようとすると、問題を解決するには2つの方法があると思います。

1. コールバック関数に別の引数を追加する
このページにはコールバックの良い例がありますが、その部分は既に理解されていると思います。

コードで、 を定義しますfunction GetData(json)。多分あなたはそれをに変更する必要があります

function GetData(json, callbackfunc) {
  ..
  // Here, instead of any logic for code1() or code2() etc, you just
  callbackfunc();
  ..
}

GetDataそして、新しい関数引数を使用して、既に呼び出している場所を変更する必要があります。

2. グローバル変数を使用して必要なものを定義する
何らかの理由で追加の引数を渡すことができない場合は、コールバック用の変数を定義することをお勧めします。例:

 <script type="text/javascript">

   var mynextcallback;

   function GetData(json) {
     ..
     mynextcallback();
     ..
   }       

 </script>

そして、あなたが呼び出す部分でGetData、あなたはできるmynextcallback = code1; GetData();

于 2013-10-15T04:36:26.313 に答える
1

次のフィドルを試してください: http://jsfiddle.net/KJSU5/

var code2 = function(){
    alert("This is code2");
};

function GetData()
{

    if(typeof code1 !== 'undefined'){
         code1();
         return;
    }

    if(typeof code2 !== 'undefined'){
         code2();
         return;
    }

    if(typeof code3 !== 'undefined'){
         code3();
         return;
    }
}
于 2013-10-15T04:34:32.450 に答える