【问题标题】:What browsers support getElementById?哪些浏览器支持 getElementById?
【发布时间】:2023-04-03 20:13:01
【问题描述】:

假设getElementById 可以在每个浏览器中工作是否安全?如果不支持,哪些支持/不支持?

【问题讨论】:

  • 希望所有的,尽管旧的 IE 可能会遇到一些问题。另一方面,较旧(和较新)的 IE 对所有事情都感到困惑。
  • @KingKongFrog:你需要往回走多远?当你回到足够远的地方时,就兼容性而言,事情会变得更加棘手。
  • 我想知道它的最低浏览器要求。

标签: javascript cross-browser getelementbyid


【解决方案1】:

所有浏览器都支持这一点,但是我在 IE6 和 7 中遇到了一个问题(添加到 @Esailija 的答案中)

这样做:

<input type="text" name="address" id="address" value="5th Avenue" />  

不要这样做:

<input type="text" name="full_address" id="address" value="5th Avenue" />  

您应该这样做的原因是因为在 Internet Explorer 中,如果您尝试使用 getElementById 定位元素,由于某种原因,浏览器会搜索页面上某些元素的 name 属性,除了ID。假设我们使用了错误的方法来编码 name 和 id 值,下面的代码块将在 IE7 中得到完全相同的结果:

var fullAddress = document.getElementById("full_address");  
alert(fullAddress.value);  

var fullAddress = document.getElementById("address");  
alert(fullAddress.value);  

【讨论】:

    【解决方案2】:

    由于您要求它工作的最低要求,我认为这意味着您可以期望它工作的最早的浏览器,请查看此页面:

    http://www.quirksmode.org/dom/w3c_core.html

    据此,您在 IE-8 之前处于危险境地(他们说“几乎”),并且在 FireFox、Safari、Chrome 和 Opera 方面表现出色。

    【讨论】:

      【解决方案3】:

      它得到了非常广泛的支持,但我知道至少有两个错误 (Both from jQuery source):

      • Blackberry 返回不在 dom 中的元素
      • 如果元素的 name 与 id 匹配,则返回元素(Opera、IE.. 版本未知)

      【讨论】:

        【解决方案4】:

        当前所有浏览器都支持它。它从 DOM Level 1 开始就是 DOM 的一部分。所以基本上每个支持文档对象模块的浏览器(从 IE 5.5 开始)都应该支持这种方法。

        来源:MDN (document.getElementById)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-30
          • 1970-01-01
          • 2013-05-15
          • 2023-04-03
          相关资源
          最近更新 更多