繁体   English   中英

我应该检查是否定义了document.getElementById

[英]Should I check to see if document.getElementById is defined

我遇到了一些网页javascript代码,它首先检查document.getElementById本身是否存在,然后才对特定元素进行更期望的检查:

if (document.getElementById) {
    var elem = document.getElementById("someid");
    if (elem) {
        ...
    }
}

这是一种合理的做法还是超偏执狂? 如果合理,为什么不:

if (document && document.getElementById) { ... }

caniuse.com是一个非常有用的网站,适合这类事情。 在这种情况下,他们说它在所有主流浏览器中得到支持,并且“可以安全使用”。 它们提供了一个源 ,您可以从中找到它:

  • Chrome 1.0
  • Firefox(Gecko)1.0(1.7或更早版本)
  • IE 5.5
  • Opera 7.0
  • Safari(Webkit)1.0
  • Android 1.0
  • Firefox(Mobile Gecko)1.0(1.0)
  • IE Phone 6.0
  • Opera Mobile 6.0
  • Safari Mobile 1.0

每个现代浏览器都实现了这个功能。 我的猜测只是你正在查看一些非常古老的JavaScript代码,而这个代码并非如此。

https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById包含一个包含该函数兼容性信息的表。

您无需在代码中检查文档或其任何更广泛使用的函数!

这是基本的功能检测。 这段代码的缺点是没有优雅的降级。 它应该做的事情如下:

if (feature) {
    // Use it
} else {
    // Graceful alternative
}

话虽这么说, getElementById可以广泛使用,所以这对我来说是古董代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM