附加一个作为对象属性创建的元素

Appending an element created as an object property

本文关键字:对象 属性 创建 元素 一个      更新时间:2023-09-26

我有一个脚本,它将新创建的div附加到body元素onload。我需要在整个应用程序中保持对该div的引用,因此我将其存储在main全局对象中。

var oMyObj = {};
window.onload = function () {
    oMyObj.eDiv = document.createElement("div");
    document.getElementsByTagName("body")[0].appendChild(oMyObj.eDiv);
};
没有什么特别的突破性的,我相信你会同意的。无论如何,在我开始在IE9中进行测试之前,它一直工作得很好。突然,我收到一条错误信息,说"(我目前在日本工作),意思是"对象调用为null/invalid"。不确定错误信息的准确英文版本是什么

无论如何,我搜索并发现(http://d.hatena.ne.jp/wang-zhi/20110503/1304361114 -对不起,也在日语中),这是由于RealPlayer DivX插件。禁用插件后,它工作得很好。如果我使用元标记强制IE9作为IE7运行,它也可以正常工作。所以这不是一个大问题。但我想知道是否有一种"正确"的方法来做我想做的事情,以便它能在IE9中像IE9一样工作。我只能假设我现在做的不是我应该做的。

任何想法?

好的,我已经确认它是DivX(不是RealPlayer;不知道为什么我把它们混在一起)插件导致的问题。这个插件覆盖了一些核心DOM功能,包括appendChild,这对我来说似乎很疯狂,但不管怎样。DivX承认了这个bug,并将在下一个更新中修复它。是的,我想。