正确的语法浏览器嗅探(createElement)< IE9

时间:2011-10-18 18:33:11

标签: internet-explorer cross-browser createelement

源代码:

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && parseInt($.browser.version, 10)<7)

已编辑 - 抱歉,发错了代码。

上述正确的形成是什么,以确定低于ie9的浏览器?

感谢

编辑 -

以上是上述代码的原因:

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 ) {
                    hidden = document.createElement('<input type="hidden" name="' + atName + '" value="' + attrId + '"/>');
                } else {
                    hidden = document.createElement("input");

对于低于IE9

的任何内容的createElement问题

此外,我想重写整个功能,但由于范围我无法重写文件,直到它包含在项目中 - 所以我需要重写这一行才能正常工作。

1 个答案:

答案 0 :(得分:1)

AND不是有效的javascript关键字。似乎VERSION似乎都没有在任何地方宣布。此外,我建议您永远不要针对特定​​的导航器或版本进行测试,而是测试浏览器是否支持您要使用的功能。一种称为特征检测的技术。因此,例如,如果您想使用HTML5's canvas element,请不要测试浏览器是否为XXX且版本为YYY。测试浏览器是否支持HTML canvas元素。 Modernizr是这项工作的绝佳图书馆。


更新:

如果您不想听到良好做法并仍坚持使用此浏览器版本检测:

if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
    alert('Warning, you are running a crap of a browser. Please upgrade!');
}