JScript IntelliSense 概述

更新:2007 年 11 月

通过使用 Microsoft JScript IntelliSense,可以轻松地在 Visual Studio 或 Microsoft Visual Web Developer 速成版 代码编辑器中访问客户端脚本编程元素。IntelliSense 将在您键入客户端脚本代码时提供与上下文相对应的代码选择,如属性、函数和对象。不必为搜索语法或参数文档而脱离代码编辑器。而是可以在代码编辑器中查找所需信息,以及将语言元素直接插入代码中。JScript IntelliSense 与托管代码语言的 IntelliSense 的工作方式非常相似。

本主题包含以下部分:

  • 背景

  • JScript IntelliSense 功能

  • 了解 JScript IntelliSense 错误

  • 其他资源

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

背景

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

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

  • 查找成员信息。

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

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

  • 用 XML 代码注释支持自定义的 IntelliSense。

JScript IntelliSense 的工作方式

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

确定 IntelliSense 上下文

当前的编程上下文是根据以下项创建的:

  • 在当前脚本块中定义的函数。在具有以下文件扩展名的文件中支持内联脚本块:.aspx、.ascx、.master、.html 和 .htm。

  • 每个包含指向脚本文件的 src 属性的 script 元素。目标脚本文件必须具有文件扩展名 .js。

  • 通过使用 references 指令引用其他 JScript 文件的 JScript 文件。

  • 对 XML Web 服务的引用。

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

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

    说明:

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

处理 Intellisense 信息

为了提供 JScript IntelliSense 功能,Visual Studio 将执行以下操作:

  • 创建相关的 JScript 文件列表,这些文件基于活动文档中的引用以及所引用文件中的递归检查脚本引用。

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

  • 聚合数据并将其传递给 JScript 引擎,这样可以向 IntelliSense 提供类型信息和数据。

  • 监视文件是否发生了可能影响 IntelliSense 列表的变化,并根据需要更新列表。

返回页首

JScript IntelliSense 功能

JScript IntelliSense 支持以下对象:

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

  • 内部对象

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

  • 外部文件引用

  • XML 代码注释

  • ASP.NET AJAX 对象

HTML DOM 元素

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

内部对象

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

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

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

有关用户定义的变量、函数和对象的更多信息,请参见Creating Your Own Objects

外部文件引用

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

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

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

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

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

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

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

IntelliSense 还支持以资源形式嵌入在 ASP.NET AJAX Web 应用程序中的程序集内的脚本文件。有关嵌入的脚本资源的更多信息,请参见演练:将 JavaScript 文件作为资源嵌入到程序集中

References 指令

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

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

下面的示例演示如何使用基于磁盘的引用指令。

/// <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" />

说明:

包含在 Web Application Projects (WAP) 内的 Web 服务 (.asmx) 文件中的脚本不支持 JScript IntelliSense。

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

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

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

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

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

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

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

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

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

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

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

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

  • 绝对路径将被忽略。

  • 对当前项目以外的文件的引用将被忽略。

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

XML 代码注释

XML 代码注释是添加到脚本中的文本说明。当引用注释的脚本时,将通过 IntelliSense 显示这些文本说明。XML 代码注释只能从引用的文件、程序集和服务中提供。

您可以添加 XML 代码注释,以提供摘要以及有关参数和函数返回值的信息。下面的示例显示了一个使用 XML 代码注释的脚本:

function areaFunction(radiusParam)
{
    /// <summary>Determines the area of a cicle based on a radius parameter.</summary>
    /// <param name="radius" type="Number">The radius of the circle.</param>
    /// <returns type="Number">Returns a number that represents the area.</returns>
    var areaVal;
    areaVal = Math.PI * radiusParam * radiusParam;
    return areaVal;
}

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

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

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

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

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

有关如何添加 XML 代码注释来提供 JScript IntelliSense 功能的更多信息,请参见演练:JScript IntelliSense

ASP.NET AJAX 对象

ASP.NET AJAX 也支持 JScript IntelliSense。ASP.NET AJAX 包括一个客户端框架,此框架将扩展可用于 ECMAScript(JavaScript 和 JScript)的标准类型。为了使 JScript IntelliSense 能够提供有关 ASP.NET AJAX 对象的详细信息,已经向整个 Microsoft AJAX Library 中添加了 XML 代码注释。当使用包含在 ASP.NET AJAX 库中的类型和成员时,将会显示这些 XML 代码注释。

说明:

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

了解 JScript IntelliSense 错误

Visual Studio 中的 JScript IntelliSense 引擎通过检查脚本引用链接来自动进行验证,并自动提供预处理器执行情况报告。脚本引用链接验证是根据当前编程上下文确定的。如果未找到特定引用,则 Visual Studio 将提供有关该引用的错误信息。当执行相关文件失败时,将进行预处理器错误报告。

有关如何确定链接验证的更多信息,请参见确定 IntelliSense 上下文。有关如何确定预处理器错误的更多信息,请参见处理 IntelliSense 信息。

调用 Jscript 验证

在 Visual Studio 中,采用以下两种方式调用 JScript IntelliSense 验证:

  • 空闲时。空闲时在包含脚本的任何活动文档中自动调用验证。

  • 手动。也可以手动调用 JScript IntelliSense 验证。为此,在“编辑”菜单上,请单击“高级”,然后单击“验证文档”。此命令将应用于所有打开的文档。

验证结果

如果 Visual Studio 无法解析脚本引用,或者其他类型的脚本错误阻止 IntelliSense 引擎从当前脚本上下文中收集完整的结果,则 Visual Studio 将通过以下方式提供反馈:

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

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

返回页首

其他资源

演练:JScript IntelliSense

如何:创建 JScript XML 代码注释

返回页首

请参见

任务

演练:JScript IntelliSense

动态分配脚本引用

参考

列出成员

其他资源

使用 IntelliSense

关于 DHTML 对象模型

JScript 对象

SRC 属性 (Attribute) | src 属性(Property)