-4

私のコードには、currentParameter.value と呼ばれる値を取得しようとしている値があります。別のページで使用できるように、それをグローバルにする必要があります。何らかの理由で、 currentParameter.value をグローバルに利用できるようにすることはできません。アラートを実行しようとすると、未定義になります。何が原因なのかわかりません。何でもグローバルにできると思いました。私のコードは以下です。

 function determineTemplate(customInt) {
     var templateArray = [];
     var hasDropdown = false;
      for(var i=0,maxI=customInt.length;i<maxI;i+=1) {
           var Interaction = customInt[i];

           for(var j=0,maxJ=Interaction.parameterSet.param.length;j<maxJ;j+=1) {
                  var currentParameter = Interaction.parameterSet.param[j];
                  if (currentParameter.name === 'INTERACTION-TYPE') {
                     if (currentParameter.value !== '_itemData') {

                        var intTemplate = {
                            'multipleChoice': {"type" : "04719d91", "data" : Interaction, "id" : Interaction.id},
                            'dragDrop': {"type" : "94ed89c0", "data" : Interaction, "id" : Interaction.id},
                            'dropdown': {"type" : "8a01a4d0", "data" : Interaction, "id" : Interaction.id},
                            'select': {"type" : "b1fb3531", "data" : Interaction, "id" : Interaction.id}
                        };

                        var currentTemp = intTemplate[currentParameter.value];                              

                        if (currentTemplate !== undefined) {
                            if (currentParameter.value === 'dropdown') {
                                if (!hasDropdown) {
                                    templateArray.push(currentTemplate);     
                                    hasDropdown = true;
                                }
                            } else {
                                templateArray.push(currentTemp);     
                            }

                        }

                     }
                  }
           }
     };

     return templateArray; 
}; 
4

3 に答える 3

3

グローバルにするには、次の行を変更するだけです。

var currentParameter = Interaction.parameterSet.param[j];

window.currentParameter = Interaction.parameterSet.param[j];

ただし、別のページwindowでも変更されるため、使用することはできません。

于 2013-09-18T16:39:00.530 に答える
0

使ってみて

window.templateArray

それ以外の

var templateArray

これにより、基本的にグローバルなウィンドウ スコープで変数が宣言されます。

関数スコープ外で変数を宣言することもできます。例えば:

var templateArray = [];
function determineTemplate(customInt) {
于 2013-09-18T16:39:57.220 に答える
0

誤解しているかもしれませんが、変数をページからページに渡そうとする場合、グローバル var ではこれを行うことはできません。代わりに、URL または Cookie を介してデータを渡すか、サーバーに別の方法でデータを保持させ、読み込み時にページに送信する必要があります。

グローバル変数は悪だと思いますが、グローバルにしたい場合は、currentParameter.value2 つの方法が思い浮かびます。

currentParameter1)グローバルスコープで定義し、関数で使用します

2) グローバル オブジェクトに追加して、そのオブジェクトを呼び出すことができます。

window.value= currentParameter.value
于 2013-09-18T16:46:59.713 に答える