-1

有没有其他人看到这个错误信息。用谷歌快速检查并没有告诉我太多。

4

4 回答 4

2

你可能正在尝试做这样的事情......

alert($("#myElement").tagName);

你应该做这个...

alert($("#myElement")[0].tagName);
于 2008-09-17T16:11:35.620 回答
1

确保在页面呈现后运行脚本。如果您的脚本位于页面顶部并立即运行,并且您的 DIV 在该脚本下方,则 DIV 尚不存在。

于 2008-09-17T16:53:51.353 回答
1

如果您只在 IE 中看到它,则可能是 DivX 网络插件的错误:

http://drupal.org/node/1038058

DivX 网站上已确认问题,该网站显示“已在下一版本中修复”(2011 年 4 月)。

http://labs.divx.com/node/16824

本质上,该错误是 DivX 将 el.appendChild() 函数替换为一个拦截器,该拦截器试图将标记名小写,但不会检查它是否是一个文本节点。如果您尝试执行类似$('body').append('hi!'). 此外,它无法返回一个破坏 SWFObject 的元素。

解决方法是确保您从不使用文本节点或多个顶级元素调用 append()。如果要附加一系列项目:

  append($('<div>hi</div><div>there</div>')) 

确保将它们包装在顶级 div 中以避免隐含的文本节点:

  append($('<div><div>hi</div><div>there</div></div>')) 

这是被破坏的完整解决方法appendChild,可以使用相同的方法insertBefore并且replaceChild共享错误。Divx JS 在页面加载后的某个时间插入,因此您可能需要对此进行轮询。

window.fixDivxPlayerBug = function () {
    var b = document.getElementsByTagName('body')[0];
    if ( window['ReplaceVideoElements'] && ! b.appendChildDivx ){
        b.appendChildDivx = b.appendChild;
        b.appendChild = function (el) {
            if( el.tagName == null) {
                var wrap = document.createElement('div');
                wrap.appendChild(el);
                b.appendChildDivx(wrap);
            }
            else {
                b.appendChildDivx(el);
            }
            return el;
        };
    }
};
于 2011-04-12T19:46:46.913 回答
0

抱歉,就我而言,这是一个半途而废的问题。我现在正在浏览我的 .js 文件并消除整个代码块。我已将其隔离到一个特定的 .js 文件中。

非常感谢您阅读此问题并回复。

于 2008-09-17T18:02:23.937 回答