DOM操作,向后兼容性和跨浏览器的担忧

时间:2015-03-08 13:52:06

标签: javascript dom cross-browser backwards-compatibility

我是否可以安全地使用现代DOM操作和遍历document.querySelector方法,而无需担心向后兼容性跨浏览器合规性

2 个答案:

答案 0 :(得分:0)

我将在这里进行任意选择,当然可以为许多 parsecs 辩论。

我认为现代浏览器的列表基于它们符合W3C标准和可用性:

  • Firefox(版本35及更高版本)
  • Chrome(版本31及更高版本)
  • Internet Explorer(版本10及更高版本),包括移动版
  • Safari(从7.1及更高版本开始)
  • IOS Safari(7.1及以上版本)
  • Android浏览器(从37及更高版本开始)
  • Chrome(移动版)(40及以上版本)

这些浏览器都能够使用现代 CSS选择器document.querySelectorDOMParserinnerHTMLouterHTMLinsertAdjacentHTMLdocument.getElementsByClassName。有关浏览器使用情况的一些统计信息:

来自W3Schools.com的全球浏览器统计信息。 (不是版本特定的)

2015

            Chrome  IE      Firefox Safari  Opera

February    62.5 %  8.0 %   22.9 %  3.9 %   1.5 % 
January     61.9 %  7.8 %   23.4 %  3.8 %   1.6 % 

来自StatCounter.com的全球浏览器统计信息。 (不是版本特定的)

February 2014 to February 2015

Chrome  IE      Firefox Safari  Opera   Others

46.08%  20.78%  17.67%  10.36%  1.42%   3.69%

来自CanIuse.com

的全球浏览器统计信息
February 2015

IE 8    IE 9    IE10    IE11
2.9%    1.82%   1.44%   8.02%

FF 35   FF36    FF37    FF38    FF39
8.93%   0.72%   0.02%   0%      0%

Chr 38  Chr 39  Chr 40  Chr 41  Chr 42
0.68%   1.97%   27.38%  0.19%   0.17%

Sfr 7.1 Sfr 8
0.59%   1.33%

Isfr 7.1    iSfr 8.1
1.6%        5.1%

Chrome Android 40
10.51%

向后兼容性

在谈论DOM操作和向后兼容性时,这些始终是安全的选择:

文档

  • document.getElementById,自IE5.5 / FF1.0 / Chrome 1以来一直支持。
  • document.getElementsByTagName,自IE5.5 / FF1.0 / Chrome 1 *支持
  • document.getElementsByName,自IE5.5 / FF1.0 / Chrome 1 *支持
  • document.createElementdocument.createTextNode

节点**

  • childNodes
  • appendChildremoveChildreplaceChild
  • setAttributeremoveAttributegetAttribute
  • cloneNodeparentNode
  • contains
  • previousSiblingnextSibling

决定您需要支持旧浏览器完全是您的电话。如果您的雇主仍然使用IE6,那么您需要支持(并说服您的老板升级),但是可以假设超过65%的全球互联网用户使用的是现代浏览器。放大第一世界国家时,这个数字会上升。

*注意也适用于Element
**注意,Element继承自节点

答案 1 :(得分:0)

查找使用选择器的Jquery是一种管理它的简单方法。 http://www.w3schools.com/jquery/jquery_ref_selectors.asp http://jquery.com/