我还没有找到明确的方法来使用jquery.support来检测IE6,而不是使用不再支持的jquery.browser。我还需要考虑到怪癖模式,啊!
我在Stack上看过几篇文章,但它们都提到了jquery.browser,关于jquery.support的文档有点含糊。
在这方面的任何帮助都将是伟大的,并提前感谢。
发布于 2009-08-19 19:25:53
我认为jQuery simple的作者不希望开发人员再检查哪个浏览器正在运行应用程序/网站。相反,他们希望我们检查不同的浏览器功能,并在此基础上决定要做什么。无论是IE6、IE8、火狐还是some new browser都无关紧要。作为应用程序开发人员,您应该知道浏览器对不同功能的支持如何影响用户使用您的应用程序的能力,并且您应该采取相应的行动。
$.browser依赖于使用User Agent strings的浏览器嗅探,这可能是不可靠的,特别是因为用户很容易在他们的浏览器上欺骗用户代理,而不是为了布局目的而担心它-如果他们更改了用户代理,那么他们呈现为IE7的IE6无法正确呈现页面就是他们的错。;)
您可以继续使用$.browser,尽管它已被弃用,也可以尝试自己编写代码。也许已经有一个jQuery插件可以做到这一点?我知道上一次我必须检查IE6时,我使用了这种方法...
发布于 2009-08-19 19:36:49
我还没有找到使用jquery.support检测IE6的明确方法
不,当然不是 - ,这才是重点。
教条是,检测对特定功能的支持,并围绕它们的缺失进行编码,是维护跨浏览器兼容性的更好方法,而不是试图跟踪现有的每个浏览器及其支持的内容。
虽然您可以从jquery.support向后工作来猜测正在运行的浏览器,然后使用依赖于完全不同功能的不同代码,但这将是完全错误的。你将采取已经很脆弱的方法,假设浏览器‘X’支持功能‘Y’,并通过添加另一层不相关的功能嗅探来使其更加脆弱,这可能会选择错误的浏览器。
因此,教条的答案是,永远不要检测IE6或任何其他特定的浏览器。使用诸如jquery.support之类的功能嗅探解决方案来直接查看您可以使用哪些功能,但不要假设功能“Y”的存在或不存在意味着您可以或不能使用与同一浏览器“X”相关联的不同功能“Z”。因为给出一个你以前没有见过的新的或不知名的浏览器/版本,这总是会出错的。
事实上,教条的答案通常是正确的。然而,在现实中,有一些浏览器错误是无法通过功能嗅探检测到的,需要特定的解决方法。当然,这几乎总是一个浏览器,是IE6。
目前还不清楚你是否处于这种情况下,因为你的问题中没有细节,但当你真的需要对一个浏览器进行可怕的黑客攻击时,大约最好的解决方案仍然是conditional comments,放入JavaScript或HTML。
发布于 2010-12-03 19:08:29
Brad Koehler has the idea。使用IE条件语句,如下所示
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="en" class="no-js"><!--<![endif]-->然后使用javascript和一点jQuery就可以做到这一点。
$(document).ready(function () {
if ($('html').is('.ie6')) {
alert('You are running IE6!');
} else if($('html').is('.ie7')) {
alert("You are running IE7!");
} else {
// Browsers other than IE6 and 7.
}
});编辑器正在拆分我的第一部分代码,所以这里有指向它的链接-- http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
https://stackoverflow.com/questions/1301993
复制相似问题