0

外部の .js ファイルに正常に動作する JavaScript(1.7.2) があります。しかし、IE 互換モードをチェックインして IE7+ で動作することを確認したところ、問題が発生しました。ページのロード時に呼び出される関数 loader() では、chooseImage(img) を呼び出すと、その後の timeImgChange() の呼び出しが防止されます。これら 2 つの呼び出しの順序を変更すると、chooseImage() が呼び出されないという問題が残ります。誰かが助けてくれることを願っています、ニール。

window.onload = loader;

function loader(){
    var img = document.getElementById('selector_chicks');
    chooseImage(img); //This function call works
    timeImgChange();  //Not called. Works in IE9. Is called if chooseImage() is removed
}


function chooseImage(img){
    document.getElementById('chooseimage').src = imageMap[img.title].path;
    document.getElementById(img.id).style.background = "#A66B00";
    document.getElementById('textselected').innerHTML = imageMap[img.title].text;

    /*unselect the other divs*/
    var selectors = document.getElementsByClassName('selector');
    for (var i = 0; i < selectors.length; i++){
        if (selectors[i].title != img.title){
            selectors[i].style.background = "#261e1e";
        }
    }
}

function timeImgChange() {  /*Change the image ever x milliseconds*/
    var imgIdArray = ["selector_egg", "selector_chicks", "selector_poults"];
    var n = 1;
    setInterval(function(){ 
      if (doImageCycle){
          var img = document.getElementById(imgIdArray[n]);
          chooseImage(img);
          n++;
          if (n > 2) {n = 0;}
       }
     }, 2000); 
}
4

1 に答える 1

6

IE < 9 はサポートしていませんgetElementsByClassName関数はそれchooseImageに依存しているため、エンジンはコードの実行を続行する代わりにエラーをスローします。

于 2012-04-19T12:43:34.430 に答える