3

我已经写上Internet Explorer 8的一些非常简单的代码,我不明白为什么当我打开的IE(页面为什么文本“测试”不会出现在什么也没有发生工作这一页)。onload事件不与Internet Explorer

我试过在Firefox和Chrome和它完美的作品。

我的代码:

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso 8859-1" /> 

    <script type="text/javascript"> 

    function display() { 
     output.innerHTML+='test'; 
    } 

    </script> 

    </head> 

    <body onload="display()"> 

     <div id="output"> 
     </div> 
    </body> 
</html> 

编辑:让IE更改设置,不要用手做,或会很奇怪:-))

+0

正如已经在答案中提到的那样,'document.getElementById'是从文档中获取元素句柄的常用方法。这对你有用吗? http://jsbin.com/uqama4?它适用于我在Vista/IE 8 – 2011-05-11 13:40:55

+0

我会重新安装IE 8,或升级到IE 9. – 2011-05-11 13:45:52

+0

在IE8中为我工作正常。你在安装IE或其他东西时把JS关闭了吗? – ADW 2011-05-11 13:49:06

回答

3
document.getElementById('output').innerHTML += 'test'; 
+0

Internet Explorer和其他某些浏览器使用'id'作为变量名自动将元素注册为全局变量,所以我看不到这样可以解决问题。 – 2011-05-11 13:39:53

+0

@Andy E你说得对,它不会改变任何东西。顺便说一下,我认为我们触及的是我之前发布的问题的核心元素(http://stackoverflow.com/questions/5962647/javascript-code-not-displaying-wanted-output):-) 。 – Bruno 2011-05-11 13:42:10

+0

如果你无法在所有浏览器中依赖它,这不是一个好的解决方案。 document.getElementById()是正确的方法。更好的是,使用jQuery,即$('#output')。html('test'); – 2011-05-11 13:42:22

3

尝试:

function display() { 
     document.getElementById('output').innerHTML+='test'; 
    } 
+0

@Bruno在访问html时是否允许阻止内容?确保Active-X已启用。 – kjy112 2011-05-11 13:47:18