【问题标题】:What browser incompatibilities does jquery solve?jquery 解决了哪些浏览器不兼容问题?
【发布时间】:2011-01-05 04:32:24
【问题描述】:

我目前在使用或不使用 jquery 的问题上犹豫不决。我花了几个小时研究使用 jquery(或任何库)的优缺点。

jquery 的一大卖点是它让开发人员不必担心浏览器不兼容问题。我试图找到任何关于它克服了哪些不兼容性的文档。到目前为止,我还没有找到任何东西。谁能帮我解决这个问题。

【问题讨论】:

标签: jquery javascript


【解决方案1】:

您应该非常熟悉www.quirksmode.org

这是一个优秀的浏览器兼容性资源。

【讨论】:

  • 大卫·李·罗斯的化身我要归功于你,但说真的,他在范海伦中的表现要好 1000 倍,他的独奏作品只是......嗯。吃它们然后微笑?你甚至听不到 Vai 在他完全被掩埋的混音中。
  • @wsanville:我想知道是否有人会认出它。 :o) 是的,我们不能让真正的音乐家从 Diamond Dave 那里抢走聚光灯,现在可以吗?
  • 哦,是的,我访问那个网站已经快 10 年了。我从未在网站上看到任何 jquery 兼容性修复列表。它在那里吗?我只是太瞎了,看不见吗?
  • @pd1138:如果您已经访问该网站 10 年,那么您应该熟悉浏览器兼容性问题。 jQuery 旨在解决这些问题。您可能需要询问特定的兼容性问题,而不是提供 jQuery 修复的完整列表。
  • @patrick:哈哈,我不久前就认出了它,但直到现在才决定发表评论。我为 2011 年范海伦/戴夫的重逢祈祷。
【解决方案2】:

我认为您不会找到实际列表,但您可以浏览 source code 并阅读有关解决某些浏览器不一致问题的某些代码的 cmets。

示例

// check if target is a textnode (safari)
if ( event.target.nodeType === 3 ) {
    event.target = event.target.parentNode;
}

// safari subtracts parent border width here which is 5px
this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);

【讨论】:

  • 我不得不为 RTSL 给你 +1 :-)。
【解决方案3】:

仅举几例,jQuery 实现了在不支持 document.getElementsByClassName 方法(IE 8 和更早版本)的浏览器中按类名选择 DOM 元素。因此,例如,您可以选择所有具有 myClass 类的元素:$('.myClass')

jQuery 为 XMLHttpRequest 对象提供了几个有用的包装器,它们在不同的浏览器中具有不同的支持(请参阅 here)。

此外,jQuery 处理 DOM 操作时的一些差异,例如修改元素的属性或向元素添加类,我记得这在 Firefox/IE 中略有不同。

【讨论】:

  • 作为 XMLHttpRequest 对象,我假设您的意思是 IE 7 及以下版本使用 activeX 对象。还有什么吗?
  • 多年来,我一直使用 className 属性添加或更改元素的类属性值,在任何浏览器上都没有出现问题(至少到目前为止),jquery 究竟如何在这里提供帮助?
  • 关于向元素添加类,有一个IE6问题,如果你这样做el.setAttribute('class','someCls');会失败。相反,它需要el.setAttribute('className','someCls');。也许这就是你的想法。
  • el.setAttribute('class','someCls') 不会在任何浏览器中工作。 class 是 javascript 保留字,所以使用它是非法的
【解决方案4】:

这里列出了我所知道的一些事情:

IE 的事件模型与 Mozilla 和一些实现 DOM2 事件模型的 Gecko Borwsers 不同。 jQuery 通过引入 jQuery 事件模型很好地证明了浏览器的独立性。

IE 不支持 css3,而 Mozilla 支持 css3。 jQuery 选择器独立于浏览器选择器的行为。

Mozilla 确实支持像 document.getElementsByClassName 这样的方法,但是不支持。但是 jQuery 类选择器也可以防止这个问题。

IE 和 Mozilla 对浮点数有不同的属性,即它的 styleFloat for Mozilla 它的 cssFloat jQuery 为我们提供了 cssFloat 的标志来唯一地确定它。

jQuery 还有另一个标志 jQuery.boxModel,它告诉用户您的浏览器支持 IE 怪癖模式或符合 W3C 的 boxModel。

【讨论】:

  • 谢谢,这是我正在寻找的东西。当您尝试滚动自己的事件、尝试使用 target/srcElement 属性以及其他属性时,浏览器中使用的事件模型有时会很混乱。您提到 css3,您是指仅选择器还是也意味着设置/获取 css3 属性?
【解决方案5】:

我使用 jQuery 已经有一段时间了,我可以说它的 26kb 是一个非常小的价格,并且像许多其他文件一样只需要下载一次(之后它会从缓存中加载) .

1. [大量插件]

有许多插件用于不同的解决方案:画廊、验证、ajax、文件处理等。您也可以使用插件来[修复 CSS 问题]

2。浏览器兼容性

虽然我无法找到 jQuery 应用的修复的文档列表,但您始终可以查看 [源代码],它有很好的文档记录和划分,因此您可以看到什么时候会发生什么。

3.一致

当您从事不同的项目时,如果您继续使用一个库,您每次都会从中学到更多东西,并且工作得更快。

4.社区

jQuery 可能是 javascript 库中最大的一个,它具有很多优势,例如支持、教程和插件。

5. DOM 操作

jQuery sintax 使得操作 DOM 变得非常容易,而不是 document.GetElementsByTagName("tag") 你可以这样做 $("tag")

底线

我可以说 jQuery 为我节省了很多时间,并且让事情变得更容易处理,我完全推荐使用库。

【讨论】:

    猜你喜欢
    • 2015-04-09
    • 2012-12-21
    • 2021-08-04
    • 2012-03-30
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多