出于某种原因,我在 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/