Javascript onclick函数不起作用

时间:2012-10-25 05:54:19

标签: javascript internet-explorer onclick

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script language="javascript" type="text/javascript">

function setFont() {
   var i;
   for ( i = 0; i < document.all.length; i++) {
      document.all[i].style.fontFamily = "Verdana";
      document.all[i].style.fontSize = "16";
      document.all[i].style.color="black";
   }
};


function abc(a) {
    alert(a);
    ansArray = ['a'];
    for (i = 1; i <= a; i++) {
        document.write('<input type = "button" value = "a">');
        document.write('<input type = "button" value = "b">');
    }
    var myButton = document.getElementsByTagName("input");
    //alert(myButton.length);
    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";
    };
};​

setFont();
</script>
</head>

<body onload="Javascript:abc(2)">
hello
</body>
</html>

onclick函数在IE中不起作用,但在chrome和firefox中工作正常。我找不到错误。为什么正常功能不起作用。函数加载内容但是点击事件处理程序所写的前两个按钮不会仅改变IE中的按钮颜色。请帮助我...提前致谢

2 个答案:

答案 0 :(得分:0)

这里的问题是使用document.write显然也会覆盖JavaScript。如果您将document.write()切换为document.body.innerHTML +=,问题就解决了。后两个按钮无法使用该代码,因为您只是调用按钮01,而后两个按钮是34

答案 1 :(得分:0)

快速谷歌搜索表明问题是你在页面加载后使用document.write,所以它也正在删除dom。你应该避免在页面加载后调用的函数中使用它。

来源:http://sitr.us/2012/09/04/monkey-patching-document-write.html

我没有IE,所以无法测试它。