IE Javascript错误“对象不支持此属性或方法”在jQuery中

前端之家收集整理的这篇文章主要介绍了IE Javascript错误“对象不支持此属性或方法”在jQuery中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
出于某种原因,我在 jquery.js(版本1.4.3,非压缩版本)的第3156行上的Internet Explorer 8中收到以下 Javascript错误:对象不支持属性方法. Firefox和谷歌浏览器中没有错误.

这是错误发生的行:

if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {

调查(console.log(Expr.leftMatch [type]))产生以下有趣结果:在谷歌浏览器中,它输出

/(^(?:.|\r|\n)*?):((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\3\))?(?![^\[]*\])(?![^\(]*\))/

但是在Internet Explorer中,这是输出

function() {
  var p = this;
  do p = p.prevIoUsSibling;
  while (p && p.nodeType != 1);
  return p;
}

在哪个exec上不能被调用(它是未定义的).引用的函数在jquery.js中不存在.有没有人知道为什么会发生这种情况,或者我能做些什么来解决它?

遗憾的是,我还没有能够创建一个简单的脚本来重现问题,虽然我确实找到了this post of someone having the same problem,但它没有提供解决方案(最后一篇文章建议页面应该在标准模式下运行,但我的已经是).

解决方法

事实证明,经过几个痛苦的小时后,我成功地自己解决了这个问题.如果您已在其他位置定义了Object.prototype.prevIoUsObject,则Sizzle选择器引擎似乎以此意外方式(并且仅在Internet Explorer中)中断.

删除该声明,或将prevIoUsObject重命名为其他内容可以解决问题.

有趣的是,我甚至自己把那些代码放在那里(Object.prototype.prevIoUsObject = [我的问题中的函数]),但我不认识代码.

嗯,这是另一天充满了发展潜力的浪费.

原文链接:https://www.f2er.com/jquery/159781.html

猜你在找的jQuery相关文章