2

このコードは、php ファイルのコンテンツをパラメータ: online および name でロードし、0.2 秒ごとに動的に出力します。コード全体が機能しますが、「 stats 」が Internet Explorer で定義されていないと表示されます。理由はわかりません。みんな助けて

function updateStats(stat)
{
    var stat = ["online","name"];


   var stats = "";


 if (stat==undefined)
{
document.write("is undefined");
}
    var url = "online.php";

    $.each(stat, function(i, key){
       $.post(url, {stats: key}, function(data) { 
          $("#" + key).html(data);       
       });
    });
} 

setInterval('updateStats("updateStats")', 200); //  200 milliseconds = 0.2 seconds

これは更新されたコードですが、まだ統計が定義されていないと言っています

function updateStats(stat)
{


var stat = ["online","money"];


if (typeof stat == "undefined")
{
document.write("stat is undefined");
}
    var url = "online.php";

    $.each(stat, function(i, key){
       $.post(url, {stats: key}, function(data) { // stats to stat
          $("#" + key).html(data);       
       });
    });
} 


setInterval(function(){
  updateStats("updateStats");
}, 1000);


if (typeof stats == "undefined")
{
document.write("stats is undefined");
}
4

1 に答える 1

2

変化する:

setInterval('updateStats("updateStats")', 200);

に:

setInterval(function(){
  updateStats("updateStats");
}, 200);

また、何かがundefinedであるかどうかを確認するには、次の代わりに:

if (stat==undefined)

使用する:

if (typeof stat == "undefined")

また、@Felix Kling が指摘したように、stat関数を介して変数を渡しています。

updateStats(stat)

また、後でその関数内で作成します。

var stat = ["online","name"];

これは奇妙です。それを考慮してコードを変更する必要があります。

于 2012-05-26T10:46:26.637 に答える