jQuery和浏览器兼容性

哎呀! 我多年来一直是开发人员,并一直试图强调与尽可能多的系统兼容的代码。

最近,我购买了jQuery in Action这本书并开始阅读它。 我对所包含的源代码似乎无法在我当前计算机上的任何一个浏览器上正常工作感到非常不安。

具体来说,我下载了本书的源代码并为第2章选择了“jQuery选择器实验室”。但它并没有看到它在书中的作用。

在Google Chrome上,DOM Sample和DOM Sample Code窗格都是空的。 在IE7上,事情看起来更接近它们在书中出现的方式。 但是DOM示例代码窗格中的源代码全部在一行上(向右延伸,在页面外)。 请注意,本书中的屏幕截图是在Mac上运行的浏览器。

我很好奇用户在使用jQuery时遇到了什么样的跨浏览器兼容性,以及这种启示对于那些希望尽可能兼容并计划使用jQuery的开发人员意味着什么。

所有这些浏览器都积极支持jQuery:

  • Firefox 2.0+
  • Internet Explorer 6+
  • Safari 3+
  • Opera 10.6+
  • Chrome 8+

根据以下列表,过时的浏览器存在已知问题:

  • Mozilla Firefox 1.0.x
  • Internet Explorer 1.0-5.x
  • Safari 1.0-2.0.1
  • Opera 1.0-9.x
  • Konqueror的

jQuery通常与Konqueror和Firefox 1.0.x一起使用,但可能会有一些意想不到的错误,因为我们不会定期测试它们。

如果您使用任何过时的浏览器,那么这可能是您的问题,否则,您应该在stackoverflow上发布您的代码以获得帮助。 它可能不是导致问题的浏览器,但它可能是编写或执行代码的方式。

我认为您的部分问题是您正在从文件系统访问某些意图从Web服务器加载的内容。 例如,我在第2章示例中看到Chome中的此错误:

XMLHttpRequest cannot load file://...chapter2/dom.sample.html. Origin null is not allowed by Access-Control-Allow-Origin. 

除了那种东西之外,Chrome中的东西似乎表现得相当不错。

我通常针对IE [789],Chrome,Firefox,Safari和Opera,我没有看到许多特定于jQuery或jQuery-UI的浏览器问题。 问题主要是CSS问题和某些JavaScript问题(在IE中都是这两个问题)不是jQuery问题。

我不会过分担心jQuery的跨浏览器兼容性,就像本书中的代码质量一样。 我没有亲自看过这本书,所以我不能做出个人判断; 但是,我是一个Web应用程序的首席开发人员,目前有大约15,000个用户,我们已经自信地使用jQuery几年了,没有任何问题。 我们必须使用市场上的所有主流浏览器在多个平台上为客户提供支持。 当jQuery代码正确编写并针对所有环境进行测试时,无论您使用何种浏览器,它都能正常运行。

为以下桌面浏览器维护了jQuery的第3版:

  • Chrome 🙁当前 – 1)和当前
  • 边缘:(电流 – 1)和电流
  • Firefox 🙁当前 – 1)和当前
  • Internet Explorer: 9+
  • Safari 🙁当前 – 1)和当前
  • 歌剧:当前

它还针对以下移动浏览器进行维护:

  • Android 4.0+上的Stock浏览器
  • iOS 7+上的Safari

资料来源: https : //jquery.com/browser-support/

代码示例似乎使用过时的jQuery v1.4。 有关跨浏览器兼容性的更多详细信息,请下载最新版本并检查已知问题 。

我不知道为什么,但如果我将整个示例目录复制到tomcat / webapps,它工作正常。 但是如果我直接从浏览器打开页面(lab.selectors.html),它就不会显示dom示例部分。 来自firefox控制台的错误消息是这样的:

[16:56:36.335]文件元素@ file:/// C:/JavaScript/jqia2/chapter2/dom.sample.html:2之后的垃圾