谁能帮我解释一下,这段JS是什么意思?
function getObject(objectId) {
if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
return document.getElementById(objectId);
}
else if (document.all && document.all(objectId)) {
// MSIE 4 DOM
return document.all(objectId);
}
else if (document.layers && document.layers[objectId]) {
// NN 4 DOM.. note: this won 't find nested layers
return document.layers[objectId];
}
else {
return false;
}
}
以上代码是根据ID取得对象,问题是:
1)W3C DOM、MSIE 4 DOM和NN 4 DOM大致都有什么区别?为什么要分开判断?
2)为什么都写成类似:if(document.getElementById && document.getElementById(objectId)) ,这和直接写成
if(document.getElementById(objectId)) 有什么区别?
------解决方案--------------------1、区别在你的代码里就可以看到
2、差不多就是看看有没有这个方法,没有则返回undefined,而这样的话js会认为是false,后面的不执行,感觉有些地方多余
------解决方案--------------------这是为浏览器兼容JavaScript代码做的工作,
有的代码IE上可以FF上就不行,
原因就是他们对标准支持的程度和不一致性的问题!
------解决方案--------------------问题就是IE浏览器并不兼容那些,事实上,也没有一个浏览器能够全部兼容这些,这也是JS代码的编写时一个很值得注意,也很麻烦的问题。