2010-03-31 6 views
0

J'ai un Site.master dans mon projet ASP.NET qui définit une section HEAD comme suitne peut pas appeler la fonction javascript externe de Site.master

<head runat="server"> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title id="MasterTitle">MyApp</title> 
    <link rel="icon" href="Content/icon.ico" type="image/x-icon" /> 
    <link href="Content/mycss.css" rel="stylesheet" type="text/css" /> 
    <script src="Content/mycode.js" type="text/javascript"></script> 
</head> 

Dans le fichier mycode.js, j'ai une fonction appelée GetSels();

function GetSels() 
{ 
//do stuff 
} 

Si la fonction GetSels est définie dans Site.Master, GetSels est appelable. Si c'est dans mycode.js, ce n'est pas le cas.

Chaque exemple de code que j'ai vu semble dire que cela devrait fonctionner.

Qu'est-ce que je fais mal?

+0

Définir une alerte ("It's loaded"); dans votre fichier .js externe, juste pour s'assurer qu'il est en cours de chargement. – Jay

+0

Oui. l'alerte a été déclenchée ... l'appel réel à GetSels est effectué dans une autre page qui utilise site.master. Est-ce un problème? – WOPR

+0

OK. C'est bizarre bizarre. Si j'ai l'alerte dans le fichier .js, cela fonctionne, mais si ce n'est pas le cas! – WOPR

Répondre

2

Ceci devrait vraiment fonctionner parfaitement puisque j'ai fait ceci plusieurs fois moi-même.

Vérifiez que le code dans votre fichier javascript externe s'exécute correctement au chargement de la page, ceci afin de s'assurer qu'il est bien chargé correctement dans votre document. Par exemple définir une alerte ("Il est chargé"); dans votre fichier .js externe.

+0

Cela semble l'avoir réparé Jay. Je ne sais pas pourquoi ... peut-être que c'est un débogueur de studio visuel? – WOPR

+0

Hey WOPR, il semble qu'il y avait quelque chose d'autre en jeu ici, comme la définition d'une alerte n'aurait pas réglé le problème, plutôt que de vous faire savoir que le fichier lui-même était en cours de chargement. Je dirais que la mise en cache étrange était la cause de cela (surtout si vous utilisiez IE, qui a une mise en cache javascript horrible que vous devez effacer manuellement) – Jay

+0

yup. Je peux supprimer l'alerte et cela fonctionne toujours maintenant. IE >> Corbeille. Installez Chrome. – WOPR

0

Avez-vous vérifié que votre référence à mycode.js est correcte? Si vous utilisez un chemin relatif, essayez "~/Content/mycode.js" dans votre référence.

+0

Le fichier se trouve dans le même dossier que le fichier css. Le fichier css est traité correctement, donc je suppose que c'est correct? – WOPR

+0

Je viens de l'essayer. Pas de joie. – WOPR

Questions connexes