J'essaie d'utiliser JQuery avec certaines pages asp.net, qui utilisent des pages maîtres, et j'ai des problèmes avec le chargement du fichier javascript JQuery.JQuery avec MasterPage dans ASP.NET
Quand j'inclure le fichier dans le balisage de la page principale, il fonctionne très bien sur les pages qui sont dans le même répertoire que la page principale:
<script src="jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
mais qui casse pour les pages qui ne sont pas dans le même répertoire que la page maître. Les pages maîtres héritent du chemin de la page qui les inclut. Par conséquent, le chemin d'accès relatif au fichier jquery .js est différent pour différentes pages. Et, bien sûr, je ne peux pas avoir des chemins relatifs différents dans le fichier principal, car il n'y en a qu'un seul.
je pourrais utiliser un chemin absolu:
<script src="/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
mais qui brise si le site est installé en tant que répertoire virtuel.
Mon prochain essai était d'utiliser le « ~ » pour indiquer la racine du site:.
<script src="~/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
Mais la balise de script ne comprend pas le ~ »
J'ai donc essayé de le faire . dans le code-behind de OnInit(), j'ai essayé:
string url = "~/jquery/jquery-1.4.2.min.js";
url = this.ResolveUrl(url);
Page.ClientScript.RegisterClientScriptInclude("jquery_js", url);
Et cela me donne des erreurs lorsque le javascript JQuery fonctionne j'ai javascript dans le balisage de la page:.
$(document).ready(function()
{
...
}
et je reçois "$" est indéfini. J'ai ajouté une alerte au début jquery-1.4.2.min.js, et il se charge OK, mais après ce bit de javascript dans le fichier .aspx a été exécuté.
J'ai essayé ScriptManager.RegisterClientScriptInclude(), à la place, avec le même résultat.
Quel est le code HTML généré par votre dernier exemple? Est-il inclus après le tag de script qui inclut votre gestionnaire $ (document) .ready? – Goyuix
Non. Et c'est le problème. (Ou le dernier problème, s'il n'y avait pas eu la page maîtresse, j'aurais pu mettre les liens avant le script, en ajoutant les liens du code-behind, je ne me laissais pas contrôler où ils étaient placés –