JavaScript IntelliSense

IntelliSense 可在您编码时提供信息,从而有助于较快地编写代码,而且编写的代码错误较少。当在 JavaScript 编辑的客户端脚本时,IntelliSense 根据当前的上下文列出可用的对象、函数、属性和参数。可以从 IntelliSense 提供的弹出列表中选择编码选项以完成代码。

使用 IntelliSense 可以比较轻松地完成以下任务:

  • 查找成员信息。

  • 将语言元素直接插入代码中。

  • 维护上下文,而不必脱离代码编辑器。

  • 支持包含 XML 文档注释和 JavaScript IntelliSense 扩展性自定义的 IntelliSense。

有关新的 JavaScript 语言服务功能的信息,请参见 Visual Studio 2012 中的新增功能

本主题包含以下各节:

  • 确定 IntelliSense 上下文

  • 处理 Intellisense 信息

  • JavaScript IntelliSense 功能

  • JavaScript IntelliSense 扩展性

  • JavaScript 验证

有关 Visual Studio 的 IntelliSense 功能的更多信息,请参见使用 IntelliSense

确定 IntelliSense 上下文

JavaScript IntelliSense 提供代码根据与当前脚本上下文相关的任何脚本的选择。这包括当前文件中的脚本元素。它还包括从脚本中直接或间接引用的任何代码,例如脚本文件引用、程序集脚本引用、服务引用以及与页面关联的引用。

您的当前脚本上下文是根据以下项创建:

  • 在任何脚本已定义的功能在活动块文档。在具有以下文件扩展名的文件中支持内联脚本块:.aspx、.ascx、.master、.html 和 .htm。

  • 使用指向其他脚本文件的 src 属性的script 元素。目标脚本文件必须具有文件扩展名 .js。

  • 使用 reference 指令,引用其他 JavaScript 文件中的 JavaScript 文件。

  • 引用全局对象、IntelliSense 扩展或延迟加载的脚本文件组。

  • 对 XML Web 服务的引用。

  • ScriptManagerScriptManagerProxy 控件(如果 Web 应用程序是 ASP.NET AJAX 应用程序)。

  • Microsoft AJAX Library(如果正在使用支持 AJAX 的 ASP.NET Web 应用程序)。

    说明说明

    HTML 元素的事件处理程序特性中的脚本或者在 href 特性中定义的脚本不支持 IntelliSense。

处理 Intellisense 信息

若要提供 JavaScript IntelliSense,语言服务执行以下操作:

  • 生成在激活基于引用文档,因此,基于的递归检查脚本引用所引用文件依赖 JavaScript 文件的列表。

  • 遍历此列表并从每个文件中收集类型信息和其他相关数据。

  • 复合数据并将其传递给 JavaScript 语言服务,使该类型信息和数据可供 IntelliSense。

  • 监视文件是否发生了可能影响 IntelliSense 列表的变化,并根据需要更新列表。在远程存储的脚本 (例如使用 HTTP 引用的控件) 不受监视的访问。

JavaScript IntelliSense 功能

JavaScript IntelliSense 支持以下对象:

  • 文档对象模型 (DOM) 元素

  • 内部对象

  • 用户定义的变量、函数和对象

  • 在外部文件中定义的对象使用引用例如 脚本引用、引用指令和 引用组。

  • 在 XML 文档注释指定的对象,如参数和字段。

  • 使用标准 JavaScript 注释标记中描述的对象 (/)。有关更多信息,请参见扩展 JavaScript IntelliSense

  • 使用 JavaScript IntelliSense 扩展性 framework 支持的对象。有关更多信息,请参见扩展 JavaScript IntelliSense

  • ASP.NET AJAX 对象

当 IntelliSense 无法确定对象时的类型,它为语句完成功能提供选项使用中的标识符文档。有关更多信息,请参见适用于标识符的语句结束

Bb385682.collapse_all(zh-cn,VS.110).gifHTML DOM 元素

JavaScript IntelliSense 提供编程用于动态 HTML (dhtml) DOM 元素引用,如 body、form和 div。IntelliSense 只显示包括在当前文档和母版页中的元素。JavaScript IntelliSense 还支持 window 和 document 对象及其成员。

Bb385682.collapse_all(zh-cn,VS.110).gif内部对象

JavaScript IntelliSense 提供编程为本身内部对象 Array、String、Math、Date和 Number引用。有关内部对象的更多信息,请参见内部对象 (JavaScript)

Bb385682.collapse_all(zh-cn,VS.110).gif用户定义的变量、函数和对象

在更改 JavaScript 文件时,Visual Studio 扫描打开和引用的文档,确定所有可用的代码资源。这包括已创建的变量、函数和对象。这些资源 JavaScript IntelliSense 都可用。

有关用户定义的变量、函数和对象的更多信息,请参见 MSDN 网站上的 Creating Your Own Objects(创建自己的对象)。

Bb385682.collapse_all(zh-cn,VS.110).gif外部文件引用

可以在代码中包含外部文件各种类型的引用实现 IntelliSense 支持。外部文件引用可能是脚本引用,指令,也可以指定使用引用组。

Bb385682.collapse_all(zh-cn,VS.110).gif脚本引用

您可以引用包括脚本代码的外部文件,而不用在页中编写所有客户端脚本。这样,可以比较轻松地在页之间重复使用代码,而且客户端脚本可以由浏览器进行缓存。

如果不处理支持 ASP.NET AJAX 的网页,则可以通过在 script 元素开始标记中使用 src 特性来引用外部脚本文件。src 特性指定包含源代码或数据的外部文件的 URL。

下面的示例显示了在 <script> 标记中使用 src 特性来引用脚本文件的标记。

<script type="text/javascript" src="~/Scripts/JavaScript.js">
  
</script>

如果要处理支持 ASP.NET AJAX 的网页,则可以通过使用 ScriptManager 控件的 ScriptReference 对象来引用脚本文件。

下面的示例显示了在 ScriptManager 控件中使用 ScriptReference 对象来引用脚本文件的标记。

<asp:ScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="~/Scripts/JavaScript.js" />
  </Scripts>
</asp:ScriptManager>

IntelliSense 还支持以资源形式嵌入在 ASP.NET AJAX Web 应用程序中的程序集内的脚本文件。有关嵌入的脚本资源的更多信息,请参见Embedding a JavaScript File as a Resource in an Assembly

Bb385682.collapse_all(zh-cn,VS.110).gif引用指令

通过使用 reference 指令,Visual Studio 能够在当前正编辑的脚本与其他脚本之间建立关系。通过使用 reference 指令,可以在当前脚本文件的脚本上下文中包括一个脚本文件。这使 IntelliSense 能够在您进行编码时引用在外部定义的函数、类型和字段。

您可以以 XML 注释的形式创建一个 reference 指令。此指令必须在文件中任何脚本之前声明。reference 指令可以包括基于磁盘的脚本引用、基于程序集的脚本引用、基于服务的脚本引用或基于页面的脚本引用。

下面的示例演示如何使用基于磁盘的引用指令。在第一个示例中,语言服务位于例如包含项目文件的文件夹的文件 (,.jsproj)。

/// <reference path="ScriptFile1.js" />

/// <reference path="Scripts/ScriptFile2.js" />

/// <reference path="../ScriptFile3.js" />

/// <reference path="~/Scripts/ScriptFile4.js" />

下面的示例演示如何创建对基于程序集的脚本的引用。

/// <reference name "Ajax.js" assembly="System.Web.Extensions, ..." />

下面的示例演示如何引用基于服务的脚本:

/// <reference path="MyService.asmx" />

/// <reference path="Services/MyService.asmx" />

/// <reference path="../MyService.asmx" />

/// <reference path="~/Services/MyService.asmx" />

说明说明

JavaScript 支持 IntelliSense。在 Web 应用程序项目 (WAP) 的 web 服务的脚本支持 (.asmx) 文件中。

下面的示例演示如何引用基于页面的脚本。

/// <reference path="Default.aspx" />

/// <reference path="Admin/Default.aspx" />

/// <reference path="../Default.aspx" />

/// <reference path="~/Admin/Default.aspx" />

下面的规则适用于 reference 指令。

  • reference XML 注释必须在任何脚本之前声明。

  • 必须将 XML 注释语法与三个斜杠一起使用。用标准注释语法(两个斜杠)进行的引用将被忽略。

  • 对于每个指令,只能指定一个文件或资源。

  • 不允许存在多个对基于页面的脚本的引用。

  • 如果指定了一个页面引用,则不允许执行其他类型的引用指令。

  • 文件名使用相对路径。可以使用波形符运算符 (~) 创建相对于应用程序根目录的路径。

  • 绝对路径将被忽略。

  • 将不处理引用的页面中的引用指令,也就是说,不为页面对引用指令进行递归式解析。只包括页面直接引用的脚本。

Bb385682.collapse_all(zh-cn,VS.110).gif引用组

可以使用参考组指定特定 IntelliSense .js 文件中的所有 JavaScript 项的大小。三组引用可用:隐式 (窗口),隐式 (Web) 和私有的辅助引用组。隐式 (窗口) 使用 JavaScript,引用针对 Windows 应用商店 apps,并且,隐式 (Web) 引用针对 HTML5 项目。在这些隐式包括引用的文件组在代码编辑器中打开的每个 .js 文件的大小。

这个私有的辅助引用组用于 HTML5 Web 辅助。本组中指定的文件在具有显式对某个私有的辅助引用组的 .js 文件的大小。隐式引用不适用于具有显式对某个私有的辅助引用组的 .js 文件。

可以使用配置选项以 JavaScript 代码编辑器中指定隐式引用。有关更多信息,请参见选项,文本编辑器,JavaScript,IntelliSense

提示提示

IntelliSense 引用通常使用提供 IntelliSense 支持全局对象以及 IntelliSense 扩展。可以对必须加载运行时使用脚本加载程序,的脚本还使用此功能。

Bb385682.collapse_all(zh-cn,VS.110).gifXML 文档注释

XML 文档注释是添加到脚本中的文本说明。当引用注释的脚本时,这些文本说明在 IntelliSense 中显示。例如,可以提供有关函数的参数信息和返回值。XML 文档注释从引用的文件、程序集和服务只能获取。有关更多信息,请参见XML 文档注释 (JavaScript)如何:创建 JavaScript XML 文档注释

IntelliSense 可以在以下文件引用方案中显示 XML 注释的代码引用:

  • 一个引用另一个 .js 文件的 .js 文件。

  • 一个引用 .aspx 文件的 .js 文件。

  • 一个引用 .js 文件的 .aspx 文件。

当一个 .aspx 文件引用另一个 .aspx 文件时,IntelliSense 不可用。

Bb385682.collapse_all(zh-cn,VS.110).gifASP.NET AJAX 对象

ASP.NET AJAX 还支持 JavaScript IntelliSense。ASP.NET AJAX 包括扩展标准的类型可用于 ECMAScript 的一个客户端结构 (JavaScript)。若要使 JavaScript IntelliSense 提供有关 ASP.NET AJAX 对象的详细信息,XML 文档注释添加到在 Microsoft AJAX Library中。这些 XML 文档注释显示,当使用包含在 ASP.NET AJAX 库中的类型和成员时。

说明说明

私有成员不是由 JavaScript IntelliSense 显示。在 ASP.NET AJAX 中用以下划线 (_) 开头的成员来表示私有成员。

JavaScript IntelliSense 扩展性

JavaScript 语言服务提供使您能够修改开发人员的 IntelliSense 体验使用第三方库的对象和函数。这些函数特别有用,将默认值语言服务无法提供要提供给客户的所有信息时。有关更多信息,请参见扩展 JavaScript IntelliSense

JavaScript 验证

脚本验证的 JavaScript 在后台经常发生。当 Visual Studio 检测到 JavaScript 代码中的语法错误,下面的方式提供反馈:

  • 编辑器中带下划线的元素。红色的波浪下划线指出了错误。如果将鼠标指针停留在错误上,工具提示会显示错误说明。

  • “错误列表”窗口。“错误列表”窗口显示错误说明、出错的文件、行号和列号以及项目。若要显示“错误列表”窗口,请在“视图”菜单中单击“错误列表”

  • 尚未加载的"输出"窗口显示引用。

返回页首

请参见

任务

如何:创建 JavaScript XML 文档注释

概念

扩展 JavaScript IntelliSense

适用于标识符的语句结束

XML 文档注释 (JavaScript)

其他资源

使用 IntelliSense

有关 DHTML 对象模型

List Members

SRC 特性 | src 属性