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

时间:2011-10-31 13:55:27

标签: javascript internet-explorer-9

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

var oMyObj = {};

window.onload = function () {
    oMyObj.eDiv = document.createElement("div");
    document.getElementsByTagName("body")[0].appendChild(oMyObj.eDiv);
};

没有什么特别突破性的,我相信你会同意的。无论如何,它在我开始在IE9中测试之前一直很好。我突然收到一条错误消息“オブジェクトの呼び出しが无效です”(我目前在日本工作),这种转换为“对象调用无效/无效”。不确定错误消息的精确英文版本是什么。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,我确认它是DivX(不是RealPlayer;不知道为什么我把它们混合起来)插件导致问题。该插件会覆盖一些核心DOM功能,包括appendChild,这对我来说似乎很疯狂,但无论如何。 DivX acknowledged这个bug显然会在下次更新时修复它。是的,我猜。