簡體   English   中英

onclick javascript函數在IE中不起作用

[英]onclick javascript function does not work in IE

var myButton = document.getElementsByTagName("input");

myButton[0].onclick = function() {
  if(ansArray[0] == 'a')
    myButton[0].style.backgroundColor = "green";
  else
    myButton[0].style.backgroundColor = "red";
}

myButton[1].onclick = function() {
  if(ansArray[0] == 'b')
    myButton[1].style.backgroundColor = "green";
  else
    myButton[1].style.backgroundColor = "red";
}

onclick函數在上面的示例(IE9)中不起作用,但是在Chrome和Firefox中它們可以正常工作。

問題是,當您嘗試訪問按鈕時,尚未加載DOM。 將onclick處理程序包裝在window.load中,一切都應該正常工作:

window.onload = function () {
    var myButton = document.getElementsByTagName("input");

    myButton[0].onclick = function() {
        if(ansArray[0] == 'a') {
            myButton[0].style.backgroundColor = "green";
        } else {
            myButton[0].style.backgroundColor = "red";
        }
    }

    myButton[1].onclick = function() {
        if(ansArray[0] == 'b') {
            myButton[1].style.backgroundColor = "green";
        } else {
            myButton[1].style.backgroundColor = "red";
        }
    }
}

實際上,我很驚訝Webkit和Mozilla下的這種功能。 我創建了一個小演示小提琴 在所有情況下,在所有瀏覽器中,對象在加載之前均顯示為null,除非腳本塊位於您要在主體內部訪問的元素之后。

請注意,雖然有如何的不同getElementsByTagName內不同的瀏覽器反應,它比是不同getElementById小提琴

另一種選擇是不等待window.onload ,而是等待document.body因為window.onload在包含圖像的所有內容加載之后發生。

function Start() {
    if (document.body) {
        var myButton = document.getElementsByTagName("input");

        myButton[0].onclick = function() {
            if(ansArray[0] == 'a') {
                myButton[0].style.backgroundColor = "green";
            } else {
                myButton[0].style.backgroundColor = "red";
            }
        }

        myButton[1].onclick = function() {
            if(ansArray[0] == 'b') {
                myButton[1].style.backgroundColor = "green";
            } else {
                myButton[1].style.backgroundColor = "red";
            }
        }
    }
}

setInterval(Start, 50); // 50 ms is a small enough interval to retry

我在這里使用的相同答案Javascript onclick函數不起作用應該適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM