我一直在四处寻找,到处都说IE8确实有HTMLDocument和Element类。不幸的是,当我试图访问它时,我得到的只是:
"'HTMLDocument' is undefined"
"'HTMLElement' is undefined"
"'Element' is undefined"
"'Document' is undefined"
我一直怀疑它是控制台故障,但是当我从脚本和原型中加载它时会发生同样的事情,即Array确实存在。
难道我正试图以错误的方式访问它吗?我正在使用:
typeof HTMLDocument.prototype.getElementsByClassName != 'function'
答案 0 :(得分:2)
我不确定,但可能是因为你处于兼容模式。
你可以做类似的事情:
var elementPrototype = typeof HTMLElement !== "undefined"
? HTMLElement.prototype : Element.prototype;
但这适用于IE7 + 。
答案 1 :(得分:1)
好的,我找到了。 IE将自己设置为Quirks模式,用于我正在测试它的页面。不幸的是我在这种情况下无法设置文档模式,因此添加我自己的getElementsByClassName是一个失败的原因...
对于那些可以编辑他们正在处理的html文档的人,添加这个元标记以确保IE8将充当IE8:
<meta http-equiv="X-UA-Compatible" content="IE=8">
答案 2 :(得分:0)
var hasClass = function (el, searchClass) {
return el.className.test(new RegExp('(\\s|^)' + searchClass + '(\\s|$)'));
};
在旧版本的IE中,您无法向HTMLElement.prototype
添加方法。
您始终可以将此添加到Object.prototype
对象,但它在