javascript - IE Javascript 错误 "Object doesn' t 支持此属性或方法"within jQuery

标签 javascript jquery internet-explorer sizzle

出于某种原因,我在 Internet Explorer 8 中的 jquery.js(版本 1.4.3,非压缩版本)第 3156 行收到以下 Javascript 错误:对象不支持此属性或方法。在 Firefox 和 Google Chrome 中不会出现错误。

这是错误发生的行:

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

调查 (console.log(Expr.leftMatch[type])) 产生以下有趣的结果:在 Google Chrome 中,它输出

/(^(?:.|\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 = [我问题中的函数]),但我不认识代码。

好吧,又是充满发展潜力的一天。

关于javascript - IE Javascript 错误 "Object doesn' t 支持此属性或方法"within jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968416/

相关文章:

HTML/CSS 表格右对齐文本在 IE 中不起作用

javascript - JS循环遍历数组时的位置

javascript - Puppeteer 中的整页 PDF

JavaScript - 将数组索引分配给返回值不起作用

javascript - jPages 插件和 IE8 不显示内容

javascript - jQuery .ajax PUT 请求不尊重自定义 header

javascript - 在表格中右对齐并居中

html - 在 IE7/8 中从外部目标拖动时防止文本选择

javascript - 如何让 jquery.couch.app.js 与 IE8 一起工作

javascript - 迭代对象。解构它的键和属性并添加新的