function prepareSlideshow(){
//确保浏览器支持DOM方法
if (!document.getElementsByTagName) return false;
if (!document.getElementById) return false;
//确保元素存在
if (!document.getElementById("linklist") return false;
if (!document.getElementById("preview") return false;
....
}
新手。看这本书时候发现里边很多demo都是先验证浏览器是否支持DOM方法,然后再验证一次用这个方法是否真的获取到了某个元素。
好奇为什么还要第一步?难道不是直接验证是否获取到元素就可以了么,如果获取到了,自然所用的DOM方法是被浏览器支持的。
比如上面的if (!document.getElementById) return false;
好像并没有必要。
还是这里有什么深意?
如果浏览器没有document.getElementById这个方法,又没有做第一次验证,那么直接用 document.getElementById("linklist")
调用了一个不存在的方法,代码是会报错的
if (!document.getElementsByTagName)
是确定浏览器是否有 document.getElementsByTagName 这个方法,因为一些老的浏览器没有这个方法。在有这个方法的基础上才能用这个方法来查找元素。
谢楼上各位回答。不过其实我的疑惑是为什么要验证两遍,我觉得只要验证能用某个DOM方法成功获取一个元素就可以了,不用再另外验证DOM方法本身。
正如@Injet 提到的,这个意义应该是在debug的时候容易锁定问题吧
前面是验证浏览器是否支持document.getElementById
这种API,后面是验证是否存在这个节点。
《DOM编程艺术这本书》挺好的,适合入门,但是我觉得不要太在意这些验证,因为现在几乎所有的浏览器都支持前面你写的那些api。