Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE Javascript错误“;对象没有';“不支持此属性或方法”;在jQuery中_Javascript_Jquery_Internet Explorer_Sizzle - Fatal编程技术网

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

IE Javascript错误“;对象没有';“不支持此属性或方法”;在jQuery中,javascript,jquery,internet-explorer,sizzle,Javascript,Jquery,Internet Explorer,Sizzle,出于某种原因,我在jquery.js(版本1.4.3,非压缩版本)的第3156行的Internet Explorer 8中遇到以下Javascript错误:对象不支持此属性或方法。Firefox和Google Chrome中没有出现错误 这是发生错误的行: if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { 调查(console.log(Expr.leftMatch[type]))

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

这是发生错误的行:

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中不存在引用的函数。有没有人知道为什么会发生这种情况,或者我能做些什么来解决它


不幸的是,我还没有能够创建一个简单的脚本来重现这个问题,尽管我确实找到了,但它并没有提供解决方案(上一篇文章建议该页面应该在标准模式下运行,但我的页面已经运行了)。

事实证明,经过几个小时的痛苦之后,我自己设法解决了这个问题。如果您在别处定义了
Object.prototype.previousObject
,则Sizzle选择器引擎似乎会以这种意外的方式(仅在Internet Explorer中)中断

删除该声明,或者将
previousObject
重命名为其他对象,可以解决此问题

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


好吧,这又是一个浪费了大量开发潜力的日子。

我发现,如果您试图向Object.prototype添加一个名为“inherited”的方法,即
Object.prototype.inherited=


它影响IE6、7和8,但在IE9(beta版)中似乎是固定的。

在打印“leftMatch”条目时,“type”的值是多少?什么该错误消息对您来说不够具体吗-D(它几乎与“Undefined is not a function”错误消息一样有用);-)好吧,如果这是真的——Sizzle的内部表中有垃圾——那么某个地方出现了可怕的错误。@Pointy:很明显,但为什么?如何修复它?为什么它只发生在IE中?嗯,我想我从未见过这种情况发生,所以我不确定该怎么办。如果您使用的是IE8,则需要检查两种兼容模式:“浏览器模式”和“文档模式”。但听起来你很确定这一切都是正确的。