这是我在 Windows XP 和 Windows 2003 上使用 JavaScript 和 IE8 时遇到的一个有趣问题。我在页面上创建了一个对象,然后检索有关该对象的信息(例如,它的版本)。尝试获取版本时,我正在运行以下代码:
var myObject = document.getElementById(objectId);
console.log(myObject.version);
有趣的是,除了 Windows XP 和 2003 上的 IE8 之外,此代码适用于所有单个浏览器。我已经进行了一些调试,这就是事情变得有趣的地方。
myObject不为空,但 myObject.version 未定义。所以我所做的是我在两者之间添加了一个警报,所以现在的代码如下:
var myObject = document.getElementById(objectId);
alert(myObject.version);
console.log(myObject.version);
警报导致“未定义”,但是,console.log 现在生成实际版本。如果我在此警报之前添加警报(假设警报(“某事”)),那么第二个警报现在具有实际版本。我假设这是一个时间问题(由于某种原因,对象需要某个时间才能提供存储在其中的数据?)但我不确定这是什么类型的时间问题或如何解决它。
抱歉,描述太长了,但感谢您提供任何帮助。