使用Internet Explorer 11和ASP .NET的JQuery异常

Die*_*goS 8 asp.net jquery internet-explorer telerik

当我浏览ASP .NET站点时,我在使用Internet Explorer时遇到以下JQuery异常.此外,我正在使用Telerik Controls套件用于ASP .NET和Visual Studio 2012.

在此输入图像描述

如果我检查ScriptResource.axd中的行号?d = ...(Telerik的文件):

/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */

a.querySelectorAll("*,:x"), //Line 10673

s.call(a,"[s!='']:x"), //Line 10898
Run Code Online (Sandbox Code Playgroud)

在我的jquery-2.1.0.min.js中:

/*! jQuery v2.1.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */

a.querySelectorAll("*,:x") //Line 10357

q.call(a,"[s!='']:x") //Line 10571
Run Code Online (Sandbox Code Playgroud)

在这两个文件中,我在相同的两个句子中得到一个例外.这些异常不会导致外部行为,但我不喜欢在Visual Studio中看到它们,因为可能存在某些错误的信号.

注意:如果我删除Telerik的JQuery或标准JQuery错误仍然存​​在.即使我将Telerik的JQuery设置为使用标准的JQuery仍然存在错误.此外,控制台中没有错误.

发生了什么?

Igo*_*r B 2

简短回答:

jquery 没有任何问题 - 有时它会做自己的“肮脏”事情来让你的手干净,因为有时没有“干净”的方法来完成需要做的事情

太长了;

长答案:

似乎在这两种情况下您都看到了jQuery捕获的错误,因为根据Telerik 文档,一些 Telerik 控件依赖于 jQuery - 所以您将拥有开箱即用的 jQuery

关于异常 - jQuery 加载后,它会进行功能检测- 如您所知,浏览器行为因每个浏览器/版本而异,并且通常无法在不尝试使用功能并捕获异常(如果该功能不受支持)的情况下进行检测

例如,a.querySelectorAll("*,:x")当 jquery 对以下支持的选择器进行功能检测时,会发生第一个异常(at ) - 您可以通过在github或任何非缩小的jquery 文件document.querySelectorAll中搜索来简单地找到它:

// Opera 10-11 does not throw on post-comma invalid pseudos
el.querySelectorAll("*,:x");
rbuggyQSA.push(",.*:");
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,只要页面上有 jquery,就无法避免它的预期行为