我遇到了一些网页javascript代码,它首先检查document.getElementById
本身是否存在,然后才对特定元素进行更多预期的检查:
if (document.getElementById) {
var elem = document.getElementById("someid");
if (elem) {
...
}
}
这是一种合理的做法还是超偏执狂?如果合理,为什么不:
if (document && document.getElementById) { ... }
答案 0 :(得分:3)
caniuse.com是一个非常有用的网站,可用于此类活动。在这种情况下,他们说它在所有主流浏览器中得到支持,并且“可以安全使用”。他们提供a source,您可以从中找到它:
答案 1 :(得分:2)
每个现代浏览器都实现了此功能。我的猜测只是你正在查看一些非常古老的JavaScript代码,而不是这种情况。
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById包含一个包含该函数兼容性信息的表。
您无需在代码中检查文档或其任何更广泛使用的函数!
答案 2 :(得分:2)
这是基本功能检测。这段代码的缺点是没有优雅的降级。它应该做类似的事情:
if (feature) {
// Use it
} else {
// Graceful alternative
}
话虽如此,getElementById
已广泛使用,所以这对我来说是古董代码。