document.getElementById 似乎并不适用于所有浏览器(我的意思是一些旧的浏览器),我确信有些开发人员并不知道这一点。
您建议使用哪种解决方案进行跨浏览?
由于
答案 0 :(得分:9)
如果document.getElementById不起作用,则:
或
有三种方法可以处理这个时代的浏览器。
getElementById
和朋友的存在(if (!document.getElementById) { return false; /* Insufficient DOM to bother with JS here */ }
)document.all
和document.layers
答案 1 :(得分:4)
你确定它不是this kind of problem吗?看看它有趣,我以前不知道。
然而,为了补充David Dorward已经建议的内容,你可以编写如下函数。
function getElement (id) {
if (document.getElementById) {
return document.getElementById(id);
}
else if (document.all) {
return window.document.all[id];
}
else if (document.layers) {
return window.document.layers[id];
}
}
答案 2 :(得分:1)
getElemID(obj){
if(document.getElementByID){
return document.getElementByID(obj);
}
else if (document.all){
return document.all[obj];
}
else if (document.layers){
return document.layers[obj];
}
else {
alert("Could not find support");
return false;
}
}
答案 3 :(得分:0)
function getDOM() {
if (document.getElementById) {
return document.getElementById;
}
var window_document = window.document || {};
var elements = window_document.all || window_document.layers;
if(elements) {
return function(x) { return elements[x]; }
}
// everything failed
throw new InternalError('No means to "getElementById"');
}
......然后
var getElementById;
try {
getElementById = getDOM();
} catch(err) {
alert(err);
}
// implicit 0K
var oHTMLElement = getElementById('#main');