Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery解决了哪些浏览器不兼容问题?_Jquery_Javascript - Fatal编程技术网

jquery解决了哪些浏览器不兼容问题?

jquery解决了哪些浏览器不兼容问题?,jquery,javascript,Jquery,Javascript,我目前对使用或不使用jquery持怀疑态度。我花了数小时研究使用jquery(或任何相关的库)的利弊 jquery的一大卖点是它使开发人员不用担心浏览器不兼容。我试图找到任何关于它克服了哪些不兼容的文档。到目前为止我还没有找到。有谁能帮我解决这个问题。我想你找不到实际的列表,但你可以浏览并阅读有关解决某些浏览器不一致问题的特定代码的注释 例子 举几个例子,jQuery在不支持方法document.getElementsByClassName(即IE 8和更早版本)的浏览器中实现按类名选择DOM

我目前对使用或不使用jquery持怀疑态度。我花了数小时研究使用jquery(或任何相关的库)的利弊


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

我想你找不到实际的列表,但你可以浏览并阅读有关解决某些浏览器不一致问题的特定代码的注释

例子

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

jQuery在对象周围有几个有用的包装器,它们在不同浏览器之间有不同的支持(请参阅)


另外,jQuery在DOM操作方面也有一些不同之处,比如修改元素的属性或向元素添加类,我记得这在Firefox/IE中略有不同。

您应该非常熟悉


这是一个很好的浏览器兼容性资源。

我知道的几件事列在这里:

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

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

Mozilla确实支持document.getElementsByClassName等方法,但ie不支持。但是jQuery类选择器也解决了这个问题

IE和Mozilla的float属性不同,IE的styleFloat和Mozilla的cssFloat jQuery为我们提供了cssFloat唯一确定它的标志


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

我已经使用jQuery有一段时间了,我可以告诉您,它的重量为26kb,价格非常低,而且像许多其他文件一样,只需要下载一次(之后从缓存中加载)

1.[大量插件列表]

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

2.浏览器兼容性

虽然我无法找到jQuery应用的修复程序的文档列表,但您可以随时查看[源代码],它有很好的文档记录和划分,这样您就可以看到发生了什么

3.一致性

当你在不同的项目上工作时,如果你继续使用一个库,你每次都会从中学习到更多,并且工作得更快

4.社区

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

5.DOM操作

jQuerySintax使操作DOM变得非常容易,而不是document.GetElementsByTagName(“标记”),您可以执行$(“标记”)

底线


我可以告诉你,jQuery为我节省了很多时间,让事情变得更容易处理,我完全建议你使用图书馆。

包括很多细节。我相信大卫·李·罗斯的《阿凡达》,但说真的,他在范海伦的表现好了1000倍,他的独奏作品只是……嗯。吃了它们,笑一下?你甚至听不到《阿凡达》中的Vai他完全被埋葬了。@wsanville:我想知道是否有人会认出它。:o)是的,我们不能让一个真正的音乐家从戴夫那里偷走聚光灯,现在可以吗?哦,是的,我已经访问那个网站将近10年了。我从未在网站上看到过jquery兼容性修复程序的列表。它就在那里,而我却看不见它?@pd1138:如果你已经访问该网站10年了,那么你应该对浏览器兼容性问题非常熟悉。jQuery旨在解决这些问题。也许你需要询问一个特定的兼容性问题,而不是提供jQuery所解决问题的完整列表。@patrick:lol我刚才就知道了,但直到现在才决定发表评论。我为2011年的Van Halen/Dave重聚祈祷。作为XMLHttpRequest对象,我假设您的意思是IE7及以下版本使用activeX对象。还有什么吗?我已经使用className属性添加或更改元素的类属性值多年了,在任何浏览器上都没有问题(至少到目前为止),jquery在这方面到底有什么帮助?关于向元素添加类,IE6存在一个问题,如果您执行
el.setAttribute('class','someCls'),它将失败。相反,它需要
el.setAttribute('className','someCls')。也许这就是您所想的。el.setAttribute('class','someCls')在任何浏览器中都不起作用。类是javascript保留字,因此使用itI是非法的。我不得不为RTSL:-)提供+1。谢谢,这就是我要找的东西。当您尝试滚动自己的事件、尝试使用target/srcelelement属性以及其他属性时,浏览器中使用的事件模型有时会很混乱。您提到css3,您是指仅使用选择器还是指设置/获取css3属性?
// 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);