Wie funktioniert JavaScript / jQuery Intellisense in Visual Studio 2008?

92

Ich dachte, jQuery Intellisense sollte mit SP1 verbessert werden. Ich habe sogar eine kommentierte Version von jQuery 1.2.6 heruntergeladen, aber Intellisense funktioniert nicht in einer separaten jscript-Datei. Ich habe die jQuery-Bibliothek zuerst auf meiner Webseite im <head> -Tag referenziert. Mache ich etwas falsch

Mark Struzinski
quelle

Antworten:

87

Fügen Sie oben in Ihrer externen JavaScript-Datei Folgendes hinzu:

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

Stellen Sie sicher, dass der Pfad relativ zur Position der Datei in der Ordnerstruktur usw. korrekt ist.

Außerdem müssen sich alle Verweise oben in der Datei befinden, vor jedem anderen Text, einschließlich Kommentaren - buchstäblich das allererste in der Datei. Hoffentlich funktioniert die zukünftige Version von Visual Studio unabhängig davon, wo sie sich in der Datei befindet, oder sie machen etwas ganz anderes ...

Wenn Sie dies getan und die Datei gespeichert haben , drücken Sie Ctrl+ Shift+ J, um Visual Studio zu zwingen, Intellisense zu aktualisieren.

Jason Bunting
quelle
1
Kein Problem, ich bin froh, dass ich helfen konnte! Die Intellisense-Unterstützung für JavaScript hat noch einen langen Weg vor sich, auch mit SP1 sind die Dinge meiner Meinung nach noch etwas hackig. Na ja, zumindest tun sie etwas, um zu helfen! :)
Jason Bunting
Zu Ihrer Information: Ich habe den Titel aktualisiert, um die Tatsache widerzuspiegeln, dass dies nicht nur für jQuery spezifisch ist, da dies wirklich nicht der Fall ist. Danke für die Frage!
Jason Bunting
Beachten Sie außerdem, dass Sie das Attribut PATH anstelle von NAME verwenden. Ich habe viele Beispiele gesehen w /: /// <reference name = "jQuery.js" /> (INCORRECT) anstatt /// <reference path = "jQuery.js" /> (CORRECT)
Nathan
Ja, das zeigt mein Code an. Habe ich etwas verpasst?
Jason Bunting
1
Shift-Control-j erzwingt eine Neuberechnung von Intellisense.
15

Es gibt eine offiziell unterstützte JavaScript-Datei zur jQuery-Dokumentation für Visual Studio 2008. Diese Datei ist nur eine vorläufige Korrektur, bis Microsoft einen Hotfix veröffentlicht, der das Problem angemessener behebt.

Eingebettet in ASPX:

<% if (false) { %>
    <script src="jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
<% } %>

Eingebettet in JavaScript:

/// <reference path="jquery-1.2.6-vsdoc.js" />

Heben Sie es hier auf: jquery-1.2.6-vsdoc.js

Referenzen :

JD Courtoy
quelle
Dies ist die einzige Option, mit der es in VS 2010 Ultimate für mich funktioniert hat.
Alek Davis
8

Sie sollten sich diesen Link ansehen:

http://blogs.ipona.com/james/archive/2008/02/15/JQuery-IntelliSense-in-Visual-Studio-2008.aspx

UPDATE: Es gibt ein neues HotFix für Visual Studio 2008 und eine neue jQuery Intellisense-Dokumentationsdatei, die VS'08 vollständig mit jQuery Intellisense unterstützt. Unten finden Sie Links, um diese beiden zu erhalten:

http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx

http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx

Chris Pietschmann
quelle
Wenn ich Ihnen 10 Stimmen geben könnte, würde ich. Die programmgesteuert generierte Nur-Intellisense-Datei, auf die hier verwiesen wird, ändert jQuery Intellisense von nahezu nutzlos in unverzichtbar. Hervorragend!
Herb Caudill
3

Verwenden Sie für Inline-JavaScript:

/// <reference path = "~ \ js \ jquery-vsdoc.js" />

Beachten Sie die Rückseite Schrägstriche.

Dies wird nicht funktionieren:

/// <reference path = "~ / js / jquery-vsdoc.js" />

Peter Mortensen
quelle
2

Sie sollten nicht unbedingt auf die "-vsdoc" -Version verweisen müssen. Wenn Sie die Datei jquery-1.2.6-vsdoc.js im selben Verzeichnis wie jquery-1.2.6.js ablegen, kann Visual Studio einen Verweis auf jquery-1.2.6.js auf jquery-1.2.6-vsdoc verdecken. js.

Ich denke, das wird tatsächlich für jede Datei funktionieren.

Hmmm ... das gibt eine gute Lösung für eine andere Frage auf dieser Seite ...

Bearbeiten: Diese Funktion funktioniert nur mit VS2008 Service Pack 1.

Alan Oursland
quelle
Es scheint, dass ich persönlich das "-vsdoc" in meiner Referenz behalten muss, damit es funktioniert ... Ich verwende VS2008 mit SP 1. (Und ja, diese befinden sich im selben Verzeichnis.) Vielleicht muss ich mir diese ansehen Hotfixes von Chris Pietschmann oben vorgeschlagen?
Funka
Chris hat recht. Die 'vsdoc'-Funktionalität wurde mit dem Hotfix hinzugefügt, auf den er oben verweist.
Alan Oursland
2

Wenn Sie die mit Anmerkungen versehene jQuery-Datei ausschließlich für Intellisense in Ihre Quelle aufnehmen, empfehle ich, Präprozessoranweisungen zu verwenden, um sie beim Kompilieren aus Ihrer Ansicht zu entfernen. Ala:

<% #if (false) %>
  <!-- This block is here for jquery intellisense only.  It will be removed by the compiler! -->
  <script type="text/javascript" src="Scripts/jquery-1.3.2-vsdoc.js"></script>
<% #endif %>

Dann können Sie später in Ihrem Code wirklich auf jQuery verweisen. Dies ist praktisch, wenn Sie die Google AJAX Libraries-API verwenden , da Sie alle Vorteile von Google sowie Intellisense nutzen können.

Hier ist ein Beispiel für die Verwendung der Bibliotheks-API:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
   google.load("jquery", "1.3.2", { uncompressed: false });
</script>
nikmd23
quelle
0

Wenn Sie die Intellisense-Datei vom Microsoft CDN abrufen möchten, können Sie Folgendes verwenden:

/// <reference path="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.1-vsdoc.js" />
Steve Miller
quelle
0

Stellen Sie sicher, dass Sie keine minimierte jQuery-Datei verwenden.

Verwenden Sie Ctrl+ Shift+ J, damit es funktioniert, nachdem Sie dem Projekt JavaScript-Dateien hinzugefügt haben.

römisch m
quelle
Ich hatte Mühe, die Intellisense zum Laufen zu bringen, bis ich dies fand, weil ich die minimierte Version verwendete und mich fragte, warum sie bei mir nicht funktionierte.
RKP