Internet Explorer中的Onload事件无法工作

3

我在Internet Explorer 8上编写了一些非常简单的代码,但当我用IE打开页面时,不知道为什么没有任何反应(为什么页面上的文本“test”不会出现)。

我已经在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更改您的设置,不要手动更改,否则会变得奇怪 :-))


如先前的答案所述,document.getElementById 是从文档中获取元素句柄的常用方法。这个链接是否对您有用:http://jsbin.com/uqama4?在 Vista/IE 8 上对我有效。 - Andy E
我会重新安装IE 8,或升级到IE 9。 - Andy E
在我的 IE8 中运行正常。你是否在你的 IE 安装中关闭了 JS 或其他东西? - ADW
1
我脑海中浮现的一件事是ActiveX未启用或JS已禁用。 - KJYe.Name
2个回答

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

Internet Explorer和其他一些浏览器会自动使用“id”作为变量名将元素注册为全局变量,因此我认为这并不能解决问题。 - Andy E
@Andy E 你说得对,这并没有改变什么。顺便说一下,我认为我们正在触及到我之前的帖子(http://stackoverflow.com/questions/5962647/javascript-code-not-displaying-wanted-output)中问题的核心。:-) - Bruno
如果你不能在所有浏览器上依赖它,那么它不是一个好的解决方案。document.getElementById() 是正确的方法。更好的选择是使用jQuery,例如:$('#output').html('test'); - James McCormack
@James:这没有任何区别,帖子被标记为“internet-explorer”,而且OP之前的问题中的代码只能在IE中运行(因为它使用了activex)。 - Andy E
奇怪。我直接将你的HTML复制到一个新文件中,你的代码在IE8的Quirks和IE8模式下都可以正常工作。 - James McCormack
@James McCormack 你说得对。IE自己在做一些奇怪的事情。 - Bruno

3

尝试:

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

@Bruno,你在访问HTML时允许了块内容吗?请确保启用了Active-X。 - KJYe.Name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接