Comment faire fonctionner JavaScript / jQuery Intellisense dans Visual Studio 2008?

92

Je pensais que jQuery Intellisense était censé être amélioré avec SP1. J'ai même téléchargé une version annotée de jQuery 1.2.6, mais intellisense ne fonctionnera pas dans un fichier jscript séparé. J'ai la bibliothèque jQuery référencée en premier sur ma page Web dans la balise <head>. Est-ce que je fais quelque chose de mal?

Mark Struzinski
la source

Réponses:

87

En haut de votre fichier JavaScript externe, ajoutez ce qui suit:

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

Assurez-vous que le chemin est correct, par rapport à la position du fichier dans la structure des dossiers, etc.

De plus, toutes les références doivent être en haut du fichier, avant tout autre texte, y compris les commentaires - littéralement, la toute première chose dans le fichier. Espérons que la future version de Visual Studio fonctionnera quel que soit l'endroit où il se trouve dans le fichier, ou peut-être qu'ils feront quelque chose de complètement différent ...

Une fois que vous avez fait cela et enregistré le fichier , appuyez sur Ctrl+ Shift+ Jpour forcer Visual Studio à mettre à jour Intellisense.

Jason Bunting
la source
1
Pas de problème, content de pouvoir vous aider! La prise en charge d'Intellisense pour JavaScript a encore un long chemin à parcourir, même avec SP1, les choses sont encore un peu hackish, je pense. Au moins, ils font quelque chose pour aider! :)
Jason Bunting
FYI: J'ai mis à jour le titre de ceci pour refléter le fait que ce n'est pas spécifique à jQuery, car ce n'est vraiment pas le cas. Merci pour la question!
Jason Bunting le
Notez également que vous utilisez l'attribut PATH plutôt que NAME. J'ai vu de nombreux exemples w /: /// <reference name = "jQuery.js" /> (INCORRECT) plutôt que /// <reference path = "jQuery.js" /> (CORRECT)
Nathan
Ouais - euh, c'est ce que mon code indique. Ai-je oublié quelque chose?
Jason Bunting
1
shift-control-j forcera intellisense à être recalculé.
15

Il existe un fichier JavaScript de documentation jQuery officiellement pris en charge pour Visual Studio 2008. Ce fichier est uniquement un correctif provisoire jusqu'à ce que Microsoft publie un correctif qui résoudra le problème de manière plus adéquate.

Intégré dans ASPX:

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

Intégré dans JavaScript:

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

Ramassez-le ici: jquery-1.2.6-vsdoc.js

Références :

JD Courtoy
la source
C'est la seule option qui a fonctionné pour moi dans VS 2010 Ultimate.
Alek Davis
8

Vous voudrez regarder ce lien:

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

MISE À JOUR: Il existe un nouveau HotFix pour Visual Studio 2008 et un nouveau fichier de documentation jQuery Intellisense qui apporte jQuery Intellisense complet à VS'08. Vous trouverez ci-dessous des liens pour obtenir ces deux:

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
la source
Si je pouvais vous donner 10 votes, je le ferais. Le fichier intellisense uniquement généré par programme référencé ici fait passer jQuery intellisense de presque inutile à indispensable. Exceptionnel!
Herb Caudill
3

Pour JavaScript en ligne, utilisez:

/// <chemin de référence = "~ \ js \ jquery-vsdoc.js" />

Notez les dos des barres obliques.

Cela ne fonctionnera pas:

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

Peter Mortensen
la source
2

Vous ne devriez pas avoir besoin de faire référence à la version "-vsdoc". Si vous placez le jquery-1.2.6-vsdoc.js dans le même répertoire que jquery-1.2.6.js, Visual Studio saura convertir une référence jquery-1.2.6.js à jquery-1.2.6-vsdoc. js.

Je pense que cela fonctionnera pour n'importe quel fichier.

Hmmm ... cela donne une bonne solution de contournement pour une autre question sur ce site ...

Modifier: cette fonctionnalité ne fonctionne qu'avec VS2008 Service Pack 1.

Alan Oursland
la source
Il semble que je doive personnellement garder le "-vsdoc" dans ma référence pour que cela fonctionne ... J'utilise VS2008 avec SP 1. (Et oui, ils sont dans le même répertoire.) Peut-être que j'ai besoin de regarder ceux-ci correctifs suggérés par Chris Pietschmann, ci-dessus?
Funka
Chris a raison. La fonctionnalité «vsdoc» a été ajoutée avec le correctif qu'il référence ci-dessus.
Alan Oursland
2

Si vous incluez le fichier jQuery annoté dans votre source uniquement pour Intellisense, je vous recommande d'utiliser les directives de préprocesseur pour le supprimer de votre vue lorsque vous compilez. 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 %>

Ensuite, plus tard dans votre code, vous pouvez vraiment faire référence à jQuery. Ceci est pratique lorsque vous utilisez l' API Google AJAX Libraries , car vous bénéficiez de tous les avantages que Google vous offre, ainsi que d'intellisense.

Voici un exemple d'utilisation de l'API Libraries:

<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
la source
0

Si vous souhaitez récupérer le fichier Intellisense à partir du CDN Microsoft, vous pouvez utiliser:

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

Assurez-vous que vous n'utilisez pas un fichier jQuery réduit.

Utilisez Ctrl+ Shift+ J pour le faire fonctionner après avoir ajouté des fichiers JavaScript au projet.

romain m
la source
J'ai eu du mal à faire fonctionner l'intellisense jusqu'à ce que je trouve cela, parce que j'utilisais la version minifiée et je me demandais pourquoi cela ne fonctionnait pas pour moi.
RKP