2010-05-15 9 views
0

Je charge depuis ma page principale un fichier js externe, avec une fonction.Javascript: puis-je appeler une fonction dans un fichier externe à partir de la page principale?

J'ai un fichier flash dans la page principale invoquant la fonction javascript.

Tout fonctionnait très bien jusqu'à ce que le code javascript soit dans le fichier principal, mais quand j'ai déplacé javascript vers un fichier externe, la fonction ne semble plus appelée. Donc, ... il n'y a aucun moyen de déplacer le code javascript vers un fichier externe? Ou toute autre solution?

grâce

Mise à jour

fichier principal

... 
<script type="text/JavaScript" src="../sites/all/themes/zen/zen/main.js" /></script> 
</head> 

fichier Js:

$(document).ready(function() { 

    function changeSize(objectId, width, height) { 

     alert("changeSize called"); 

... 
+0

Il n'y a pas de différence fondamentale entre JS dans la section 'head' et dans un fichier externe. Ils devraient être appelables de toute façon. Pouvez-vous montrer comment vous intégrez les fichiers? –

+0

J'ai mis à jour la question – aneuryzm

+0

Depuis que changeSize est déclaré dans une fonction anonyme, il ne peut être appelé que depuis la ou les fonctions anonymes déclarées à l'intérieur. – svinto

Répondre

1

Lorsque vous avez déplacé le JS dans le fichier externe, avez-vous ajouté $(document).ready(function() {? Puisque vous enveloppez la fonction dans une autre fonction, vous limitez sa portée, donc elle n'est pas globale, ce qui rendrait très difficile de l'appeler de l'extérieur de la fonction prête (c'est-à-dire que Flash ne pourrait pas trouve le).

+0

ok merci cool, maintenant ça marche. Alors, où devrais-je utiliser $ (document) .ready (function()? Je ne peux pas l'utiliser dans des fichiers externes ou est-il plus nécessaire, puisque je charge un fichier externe? – aneuryzm

+0

Utilisez-le lorsque vous voulez que le code s'exécute le DOM est prêt, généralement lorsque le code qui s'y trouve doit accéder à un élément qui apparaît après le script dans l'ordre source. – Quentin

0

Tant que les fichiers avec les fonctions nécessaires sont incluses (et autorisés à charge complète) avant que les fonctions soient cal conduit, alors il n'y a aucune différence entre avoir le javascript placé dans le document ou dans un fichier séparé. Etes-vous sûr que le javascript externe est inclus correctement et qu'ils sont dans le bon ordre?

+0

J'ai mis à jour la question – aneuryzm

0

Les deux causes de problèmes ici sont les plus probables:

  • Vous avez laissé des commentaires HTML ou des marqueurs XML CDATA dans la JS lorsque vous le déplacez dans un fichier externe
  • Vous avez la mauvaise URI
+0

(1) Le fichier JS contient juste les fonctions que j'ai écrites dans la question, il n'y a pas d'autres marqueurs (ou je vous ai mal compris?) (2) J'ai testé avec FireBug t obtenir un message d'erreur "Fichier introuvable". Le fichier est chargé correctement – aneuryzm

Questions connexes