2012-04-19 9 views
0

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

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); 
} 

答えて

6

IE < 9 doesn’t support getElementsByClassName.chooseImage機能がそれに依存しているため、エンジンの代わりにあなたのコードを実行し続けることで、エラーがスローされます。

+0

ハハ!どうもありがとうございます。 – nrhorner

+0

私に思い出させるためにありがとう。 – nrhorner

関連する問題