JavaScript IntelliSense

IntelliSense hilft Ihnen dabei, Code schneller und mit weniger Fehlern zu schreiben, indem Sie relevante Informationen direkt bei der Eingabe von Code zur Hand haben.Während Sie mit Clientskripts im JavaScript-Editor arbeiten, listet IntelliSense die Objekte, Funktionen, Eigenschaften und Parameter, die im aktuellen Kontext verfügbar sind.Sie können eine Codierungsoption aus der von IntelliSense bereitgestellten Popupliste auswählen, um den Code zu vervollständigen.

IntelliSense vereinfacht die Ausführung folgender Aufgaben:

  • Suchen nach Memberinformationen

  • Einfügen von Sprachelementen direkt in den Code

  • Beibehalten des Kontexts, ohne den Code-Editor verlassen zu müssen

  • Sichern Sie benutzerdefinierter IntelliSense-Elemente mit XML-Dokumentationskommentaren und Erweiterbarkeit JavaScript IntelliSense.

Weitere Informationen zu neuen JavaScript-Sprachendienstfunktionen, finden Sie unter Neues in Visual Studio 2012.

Dieses Thema enthält folgende Abschnitte:

  • Bestimmen des IntelliSense-Kontexts

  • Verarbeiten von IntelliSense-Informationen

  • Funktionen JavaScript IntelliSense

  • Erweiterbarkeit JavaScript IntelliSense

  • JavaScript-Validierung

Weitere Informationen über die IntelliSense-Funktionalität von Visual Studio finden Sie unter Verwenden von IntelliSense.

Bestimmen des IntelliSense-Kontexts

JavaScript IntelliSense stellt Codierungs-Auswahlen für den gesamten Skript bereit, das dem aktuellen Skriptkontext relevant ist.Dies beinhaltet nicht nur Skriptelemente in der aktuellen Datei,sondern auch den gesamten Code auf den direkt oder indirekt vom Skript verwiesen wird, also Verweise auf Skriptdateien, Assemblyskripts, Dienste sowie seitenbezogene Verweise.

Der aktuelle Skriptkontext wird auf Grundlage der folgenden Elemente erstellt:

  • Funktionen, die in allen Skriptblöcken im aktiven Dokument definiert werden.Inline-Skriptblöcke werden in Dateien mit folgenden Dateinamenerweiterungen unterstützt: .aspx., .ascx, .master, .html und .htm.

  • script-Elemente mit src-Attributen, die einer anderen Skriptdatei zeigen.Die Zielskriptdatei muss über die Dateinamenerweiterung .js verfügen.

  • JavaScript-Dateien, die verweisen, anderes JavaScript-Dateien, indem sie reference-Direktive verwenden.

  • Vergleichsgruppen für globale Objekte, IntelliSense-Erweiterungen oder verzögert geladene Skriptdateien.

  • Verweise auf XML-Webdienste.

  • Das ScriptManager-Steuerelement und das ScriptManagerProxy-Steuerelement, wenn die Webanwendung eine ASP.NET-AJAX-Anwendung ist.

  • Microsoft Ajax Library, wenn Sie in einer AJAX-fähigen ASP.NET-Webanwendung arbeiten.

    HinweisHinweis

    Skripts in Ereignishandlerattributen für HTML-Elemente oder in href-Attributen definierte Skripts werden von IntelliSense nicht unterstützt.

Verarbeiten von IntelliSense-Informationen

Um JavaScript IntelliSense bereitzustellen, führt der Sprachdienst die folgenden Vorgänge aus:

  • Erstellt eine Liste von JavaScript-Dateien abhängigen, die auf Verweisen im aktiven Dokument sind, und auf rekursiven Überprüfungen der Skriptverweise in den referenzierten Dateien.

  • Durchlaufen der Liste und Erfassen von Typinformationen sowie anderer relevanter Daten aus den einzelnen Dateien.

  • Aggregiert die Daten und gibt es an das JavaScript-Sprachendienst, der die Typinformationen und Daten für IntelliSense bereitgestellt werden.

  • Überwachen der Dateien auf Änderungen, die sich auf die IntelliSense-Liste auswirken könnten, und Aktualisieren der Liste nach Bedarf.Skripts auf den Speichern (wie die verwiesen mit HTTP) rufen nicht überwacht ab.

Funktionen JavaScript IntelliSense

JavaScript IntelliSense unterstützt die folgenden Objekte:

  • Elemente des Dokumentobjektmodells (DOM)

  • Systeminterne Objekte

  • Benutzerdefinierte Variablen, Funktionen und Objekte

  • Objekte definiert in externen Dateien mithilfe der Verweise wie Skriptverweise, References-Direktiven und Vergleichsgruppen.

  • Objekte angegeben in XML-Dokumentationskommentare, wie Parameter und Feldern.

  • Objekte beschrieben mithilfe der Standard-JavaScript-Kommentartags (/).Weitere Informationen finden Sie unter Erweitern von JavaScript IntelliSense.

  • Objekte unterstützt mithilfe des Erweiterbarkeit JavaScript IntelliSense Mechanismus.Weitere Informationen finden Sie unter Erweitern von JavaScript IntelliSense.

  • ASP.NET-AJAX-Objekte

Wenn IntelliSense nicht möglich ist, den Typ eines Objekts zu bestimmen, stellt es Optionen für die Anweisungsvervollständigung mithilfe der Bezeichner im aktiven Dokument bereit.Weitere Informationen finden Sie unter Anweisungsvervollständigung für Bezeichner.

Bb385682.collapse_all(de-de,VS.110).gifHTML-DOM-Elemente

JavaScript IntelliSense umfasst Programmierreferenzen für Dynamic HTML (DHTML) DOM, wie body, form und div bereit.Nur die Elemente, die im aktuellen Dokument enthalten sind, und die Masterseite werden von IntelliSense angezeigt.JavaScript IntelliSense unterstützt auch die window und document-Objekte und ihre Member.

Bb385682.collapse_all(de-de,VS.110).gifSysteminterne Objekte

JavaScript IntelliSense umfasst Programmierreferenzen für die systemeigenen systeminternen Objekte Array, String, Math, Date und Number bereit.Weitere Informationen zu systeminternen Objekten finden Sie unter Systeminterne Objekte (JavaScript).

Bb385682.collapse_all(de-de,VS.110).gifBenutzerdefinierte Variablen, Funktionen und Objekte

Wenn Sie eine JavaScript-Datei ändern, überprüft Visual Studio offene und referenzierten Dokumente, um alle verfügbaren Coderessourcen zu ermitteln.Dies schließt auch die von Ihnen erstellten Variablen, Funktionen und Objekte ein.Diese Ressourcen sind dann von JavaScript IntelliSense verfügbar.

Weitere Informationen zu benutzerdefinierten Variablen, Funktionen und Objekten finden Sie unter Creating Your Own Objects auf der MSDN-Website.

Bb385682.collapse_all(de-de,VS.110).gifExterne Dateiverweise

Sie können verschiedene Typen von externen Dateiverweisen einschließen, um IntelliSense-Unterstützung im Code zu erreichen.Externe Dateiverweise sind möglicherweise Skriptverweise, Reference-Direktiven, oder sie können mithilfe der Vergleichsgruppen angegeben werden.

Bb385682.collapse_all(de-de,VS.110).gifSkriptverweise

Anstatt das gesamte Clientskript auf einer Seite zu schreiben, können Sie auf externe Dateien verweisen, die Skriptcode enthalten.Auf diese Weise können Sie Code einfach seitenübergreifend wiederverwenden, und das Clientskript kann vom Browser zwischengespeichert werden.

Wenn Sie keine ASP.NET-AJAX-fähige Webseite verwenden, können Sie mit dem src-Attribut im Starttag eines script-Elements auf externe Skriptdateien verweisen.Das src-Attribut gibt die URL zu einer externen Datei an, die den Quellcode oder die Daten enthält.

Das folgende Beispiel enthält Markup, das das src-Attribut in einem <script>-Tag zum Verweisen auf eine Skriptdatei verwendet.

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

Bei Verwendung einer ASP.NET-AJAX-fähigen Webseite können Sie mithilfe des ScriptReference-Objekts des ScriptManager-Steuerelements auf Skriptdateien verweisen.

Das folgende Beispiel enthält Markup, das ein ScriptReference-Objekt in einem ScriptManager-Steuerelement zum Verweisen auf eine Skriptdatei verwendet.

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

IntelliSense bietet zusätzlich Unterstützung für Skriptdateien, die als Ressourcen in einer Assembly in ASP.NET-AJAX-Webanwendungen eingebettet sind.Weitere Informationen zu eingebetteten Skriptressourcen finden Sie unter Embedding a JavaScript File as a Resource in an Assembly.

Bb385682.collapse_all(de-de,VS.110).gifReferences-Direktiven

Mithilfe einer reference-Direktive kann Visual Studio eine Beziehung zwischen dem gerade von Ihnen bearbeiteten und anderen Skripts herstellen.Die reference-Direktive bietet Ihnen die Möglichkeit, eine Skriptdatei in den Skriptkontext der aktuellen Skriptdatei einzubeziehen.Dadurch kann IntelliSense auf extern definierte Funktionen, Typen und Felder verweisen, während Sie den Code erstellen.

Sie erstellen eine reference-Direktive in Form eines XML-Kommentars.Die Direktive muss in der Datei vor allen möglichen Skripts deklariert werden.Eine reference-Direktive kann Skriptverweise enthalten, die auf Datenträgern, Assemblys, Diensten oder Seiten basieren.

Im Folgenden wird anhand verschiedener Beispiele die Verwendung datenträgerbasierter Reference-Direktiven veranschaulicht.Im ersten Beispiel sucht der Sprachdienst nach der Datei im gleichen Ordner, der die Projektdatei enthält (beispielsweise, .jsproj).

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

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

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

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

Das folgende Beispiel zeigt, wie ein Verweis auf ein assemblybasiertes Skript erstellt wird.

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

Das folgende Beispiel zeigt, wie auf ein dienstbasiertes Skript verwiesen wird:

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

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

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

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

HinweisHinweis

JavaScript JScript-IntelliSense nicht für Skript unterstützt, die in den Dateien des Webdiensts (.asmx) in Webanwendungsprojekten (WAP) wird.

Das folgende Beispiel zeigt, wie auf ein seitenbasiertes Skript verwiesen wird.

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

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

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

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

Die folgenden Regeln beziehen sich auf eine reference-Direktive.

  • Der reference-XML-Kommentar muss vor allen möglichen Skripts deklariert werden.

  • Es muss XML-Kommentarsyntax mit drei Schrägstrichen verwendet werden.Verweise, die unter Verwendung der standardmäßigen Kommentarsyntax (zwei Schrägstriche) erstellt wurden, werden ignoriert.

  • Pro Direktive kann nur eine Datei oder Ressource angegeben werden.

  • Mehrere Verweise auf seitenbasierte Skripts sind nicht zulässig.

  • Wenn ein Seitenverweis angegeben wird, ist kein anderer Reference-Direktiventyp zulässig.

  • Dateinamen verwenden relative Pfade.Sie können den Tildeoperator (~) verwenden, um Pfade relativ zum Stammverzeichnis der Anwendung anzugeben.

  • Absolute Pfade werden ignoriert.

  • Reference-Direktiven in Seiten, auf die verwiesen wird, werden nicht verarbeitet. Dies bedeutet, dass Reference-Direktiven für Seiten nicht rekursiv aufgelöst werden.Es wird nur Skriptcode berücksichtigt, auf den direkt von der Seite verwiesen wird.

Bb385682.collapse_all(de-de,VS.110).gifVergleichsgruppen

Sie können Vergleichsgruppen verwenden, um anzugeben, dass bestimmte Dateien IntelliSense .js im Bereich für all JavaScript-Projekte sind.Drei Vergleichsgruppen sind verfügbar: Implizite (Windows), implizite (Internet) und dedizierte Workervergleichsgruppen.Implizite (Windows-) Verweise sind für Windows Store-App mit JavaScript, und implizite (Internet-) Verweise sind für Projekte HTML5.Die Dateien, die in diesen impliziten Vergleichsgruppen enthalten sind, im Bereich für jede JS-Datei, die im Code-Editor geöffnet ist.

Die dedizierte Workervergleichsgruppe ist für Worker des Internet-HTML5.Die Dateien, die in dieser Gruppe angegeben werden, sind im Bereich für JS-Dateien, die einen expliziten Verweis auf einer dedizierten Workervergleichsgruppe haben.Implizite Verweise gelten nicht für JS-Dateien zu, die einen expliziten Verweis auf einer dedizierten Workervergleichsgruppe haben.

Sie können Konfigurationsoptionen verwenden, sodass der JavaScript-Code-Editor implizite Verweise angibt.Weitere Informationen finden Sie unter Optionen, Text-Editor, JavaScript, IntelliSense.

TippTipp

Die IntelliSense-Verweise werden in der Regel verwendet, um IntelliSense-Unterstützung für globale Objekte und für IntelliSense Erweiterungen zu unterstützen.Sie können diese Funktion für Skripts auch verwenden, die mithilfe des Skriptladeprogramms zur Laufzeit geladen werden müssen.

Bb385682.collapse_all(de-de,VS.110).gifXML-Dokumentationskommentare

XML-Dokumentationskommentare sind Textbeschreibungen, die Sie Skripts hinzufügen.Diese Textbeschreibungen werden in IntelliSense angezeigt, wenn Sie das kommentierte Skript verweisen.Beispielsweise können Sie Informationen zu den Parametern und dem Rückgabewert einer Funktion bereitstellen.XML-Dokumentationskommentare sind nur in den referenzierten Dateien, Assemblys und Diensten verfügbar.Weitere Informationen finden Sie unter XML-Dokumentationskommentare (JavaScript) und Gewusst wie: Erstellen von JavaScript-XML-Dokumentationskommentaren.

IntelliSense kann Codeverweise für XML-Kommentare in den folgenden Szenarien zu Dateiverweisen anzeigen:

  • JS-Datei, die auf eine andere JS-Datei verweist.

  • JS-Datei, die auf eine ASPX-Datei verweist.

  • ASPX-Datei, die auf eine JS-Datei verweist.

IntelliSense ist nicht verfügbar, wenn eine ASPX-Datei auf eine andere ASPX-Datei verweist.

Bb385682.collapse_all(de-de,VS.110).gifASP.NET-AJAX-Objekte

ASP.NET-AJAX unterstützt auch JavaScript IntelliSense.ASP.NET-AJAX umfasst ein Clientframework, das die Standardtypen erweitert, die in ECMAScript (JavaScript) verfügbar sind.Um JavaScript IntelliSense zu ermöglichen Details zu ASP.NET-AJAX-Objekten bereitstellen kann, sind während Microsoft Ajax Library XML-Dokumentationskommentare hinzugefügt.Diese XML-Dokumentationskommentare werden angezeigt, wenn Sie Typen und Member verwenden, die in der ASP.NET-AJAX-Bibliothek werden.

HinweisHinweis

Private Member werden nicht von JavaScript IntelliSense angezeigt.Private Member werden in ASP.NET-AJAX als Member gekennzeichnet, die mit einem Unterstrich (_) beginnen.

Erweiterbarkeit JavaScript IntelliSense

Der JavaScript-Sprachendienst stellt Objekte und Funktionen bereit, die es Ihnen ermöglichen, die IntelliSense-Erfahrung für Entwickler zu ändern, die Bibliotheken von Drittanbietern verwenden.Diese Funktionen sind besonders nützlich, wenn der Standardsprachedienst nicht in der Lage ist, alle Informationen bereitzustellen, die Sie an den Kunden bereitstellen möchten.Weitere Informationen finden Sie unter Erweitern von JavaScript IntelliSense.

JavaScript-Validierung

JavaScript, das die Validierung Skripts, tritt ständig im Hintergrund auf.Wenn Visual Studio Syntaxfehler im JavaScript-Code erkennt, wird Feedback auf folgende Weise bereitgestellt:

  • Unterstrichene Elemente im Editor.Wellenförmige rote Unterstreichungen weisen auf Fehler hin.Wenn Sie den Mauszeiger über den Fehler bewegen, wird die Fehlerbeschreibung in einer QuickInfo angezeigt.

  • Fenster Fehlerliste.Im Fenster Fehlerliste werden die Fehlerbeschreibung, die Datei, in der der Fehler aufgetreten ist, Zeilen- und Spaltennummer und das Projekt angezeigt.Klicken Sie im Menü Ansicht auf die Option Fehlerliste, um das Fenster Fehlerliste anzuzeigen.

  • Das Ausgabefenster zeigt Verweise an, die nicht geladen wurden.

Zurück nach oben

Siehe auch

Aufgaben

Gewusst wie: Erstellen von JavaScript-XML-Dokumentationskommentaren

Konzepte

Erweitern von JavaScript IntelliSense

Anweisungsvervollständigung für Bezeichner

XML-Dokumentationskommentare (JavaScript)

Weitere Ressourcen

Verwenden von IntelliSense

Über dieses DHTML-Objektmodell

List Members

SRC-Attribut | src Eigenschaft