我试图用流沙的jQuery插件,我得到这个错误使用jQuery 1.9.1。
“遗漏的类型错误:无法读取属性‘MSIE’的未定义”
我知道,MSIE是在jQuery.browser财产jQuery.browser的标志,因为1.3版本弃用,在jQuery的1.9.0移除
这就是为什么这是造成错误。 但有一个修复,使流沙将再次合作?
任何帮助或建议将是巨大的!
提前致谢!
我试图用流沙的jQuery插件,我得到这个错误使用jQuery 1.9.1。
“遗漏的类型错误:无法读取属性‘MSIE’的未定义”
我知道,MSIE是在jQuery.browser财产jQuery.browser的标志,因为1.3版本弃用,在jQuery的1.9.0移除
这就是为什么这是造成错误。 但有一个修复,使流沙将再次合作?
任何帮助或建议将是巨大的!
提前致谢!
在A(数)强制性的话jQuery.browser
和jQuery.support
:
jQuery.browser
包含了用户代理,读取标志navigator.userAgent的 。 我们不推荐使用此属性 ; 请尽量使用特征检测(请参阅第jQuery.support
)。jQuery.browser
可能在将来的jQuery的版本被移动到一个插件。而不是使用
$.browser
在此基础上运行浏览器来检测当前用户代理和改变页面的介绍,它是使用特征检测一个很好的做法 。 为了使这个过程更简单,jQuery的执行许多这样的测试,并设置属性jQuery.support
对象。
这个故事的寓意:更新你的项目,在删除依赖jQuery.browser
和使用功能检测,在必要。 为了测试并找到您的项目过分依赖过时或删除方法或属性的区域,看到jQuery-migrate
。
另请参阅Modernizr.js和YepNope.js替代品jQuery的功能检测。
这个jQuery垫片文件替换$.browser
,礼貌的fancybox-Rails项目:
// jQuery 1.9 has removed the `$.browser` property, fancybox relies on
// it, so we patch it here if it's missing.
// This has been copied from jQuery migrate 1.1.1.
if ( !jQuery.browser ) {
var uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = uaMatch( navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
}
https://github.com/hecticjeff/fancybox-rails/blob/master/vendor/assets/javascripts/jquery.browser.js
您正在使用quicksand
包含插件code
(ie $.browser)
这是从删除jQuery
版本开始1.9
。