自jQuery。浏览器已弃用和jQuery。支持是解决浏览器问题的推荐工具,处理以下问题的推荐方法是什么?
Galleria jquery插件的全屏主题在IE中不能正常工作(错误的图像定位)<8和ie8和ie9的兼容性视图模式。文档类型为HTML 5,并使用
关闭该模式<meta http-equiv="X-UA-Compatible" content="IE=edge">
完成了它的工作,但是我如何使用jQuery。请检查IE版本是否为<8 或兼容性视图不知何故仍然打开(因为我们使用另一个主题为这些用户)?
更新:这是我们现在使用的代码(在html的底部)。
<script type="text/javascript">
$(document).ready(function () {
if ($.browser.msie && $.browser.version < 8) {
Galleria.loadTheme('js/galleria/themes/classic/galleria.classic.min.js');
$("#gallery").galleria({
/* ... */
});
} else {
Galleria.loadTheme('js/galleria/themes/fullscreen/galleria.fullscreen.min.js');
$("#gallery").galleria({
/* ... */
});
}
});
</script>
我如何正确使用
jQuery.support
做检查如果IE版本是<8 或兼容性视图不知何故仍然打开?
jQuery.support
不是用来检测浏览器版本的,而是用来检测特定的浏览器错误的。如果您可以确定这个bug的来源(可能通过.boxModel
属性进行测试?),您可以将If语句改为基于该逻辑。
功能检测比简单地检测浏览器版本更健壮,因为理想情况下,测试可以针对任何有bug的浏览器——不一定只是IE系列的浏览器。
如果你不想追踪浏览器bug的来源(从而找到正确的.support
测试),那么这个线程似乎为浏览器版本和兼容模式检测提供了一个稍微"完整"的测试。
isIE8CompatMode() {
return $.browser.msie
&& $.browser.version == 7.0
&& document.documentMode
&& document.documentMode == 8;
}
当然,您可能想要修改它以使用<
和>
测试。
它仍然依赖于$.browser
,但似乎也为兼容模式做了额外的检测(通过ie特定的document.documentMode
属性)。
这是纯javascript,不是jQuery。你可以使用documentMode。请参阅此处确定文档兼容模式。
从上面,这是我使用的IE7文档或IE7兼容模式。
var IE7BrowserMode = ($.browser.msie && $.browser.version == 7.0);
var IE7DocumentMode = ($.browser.msie && document.documentMode && document.documentMode == 7);
return( IE7BrowserMode || IE7DocumentMode );