由于不推荐使用jQuery.browser并且jQuery.support是解决浏览器问题的推荐工具,因此建议的方法是什么来处理以下问题?
Galleria jquery插件的全屏主题在IE中无法正常工作(错误的图像定位)< 8和IE 8和9兼容性视图模式。 Doctype是HTML 5,并使用
关闭该模式<meta http-equiv="X-UA-Compatible" content="IE=edge">
完成它的工作,但如何正确使用jQuery.support检查IE版本是否&lt; 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>
答案 0 :(得分:3)
如何正确使用
jQuery.support
检查IE版本是否&lt; 8 或兼容性视图以某种方式仍然打开?
jQuery.support
isn't designed to detect browser versions,但要检测特定的浏览器错误。如果您可以确定此错误的来源(可能由.boxModel
属性测试?),您可以将if语句作为该逻辑的基础。
功能检测比仅仅检测浏览器版本更强大,因为测试理想地适用于任何有缺陷的浏览器 - 不一定只是IE系列中的那些。
如果您不想追踪该浏览器错误的来源(从而找到正确的.support
测试),那么this thread seems to give a slightly more "complete" test for browser version and compatbility mode detection。
以下是该主题的代码:
isIE8CompatMode() {
return $.browser.msie
&& $.browser.version == 7.0
&& document.documentMode
&& document.documentMode == 8;
}
当然,您可能希望将其修改为使用<
和>
测试。
它仍然依赖于$.browser
,但似乎也会对兼容模式进行额外检测(通过the IE-specific document.documentMode
property)。
答案 1 :(得分:2)
这是普通的javascript,而不是jQuery。您可以使用documentMode。见Determining Document Compatibility Mode。在这里documentMode Property。
答案 2 :(得分:2)
从上面可以看出,这就是我用于IE7 Document或IE7 Compatabilty模式的内容。
var IE7BrowserMode = ($.browser.msie && $.browser.version == 7.0);
var IE7DocumentMode = ($.browser.msie && document.documentMode && document.documentMode == 7);
return( IE7BrowserMode || IE7DocumentMode );