Accéder à la fonction dans un autre fichier .js avec $ .getScript

J’ai un problème pour accéder à une fonction d’un fichier js à un autre.

J’ai essayé d’utiliser jQuery pour résoudre ce problème, mais cela ne semble pas fonctionner. Ma console dans le navigateur enregistre simplement:

http: // localhost: 58763 / orderPicking.js? _ = 1460542934750 404 (introuvable).

XHR a terminé le chargement: GET ” http: // localhost: 58763 / orderPicking.js? _ = 1460542934750 “.

Mon JS ressemble à ceci. Ceci est celui avec la fonction que je veux accéder à partir d’un autre fichier .js

function HelloWorld() { //print Hello World alert("hello world!"); } 

L’autre fichier .js (Celui qui devrait pouvoir accéder à la fonction) ressemble à ceci.

  test(); function test() { $.getScript('orderPicking.js', function () { HelloWorld(); }); } 

J’ai ajouté ceci à mon index.html

 <script type="text/javascript" src="views/OrderPicking/orderPicking.js"  

J’espère que vous pourrez m’aider à résoudre le problème.

Placez ce code dans index.html :

     getScript example   

Placez ce code dans orderLines.js dans le même dossier:

 $(function() { $.getScript('orderPicking.js', function() { HelloWorld(); }) }) 

Placez ce code dans orderPicking.js dans le même dossier:

 function HelloWorld() { $('#panel').html('

hello world!

'); }

Utilisez un utilitaire de ligne de commande pour exécuter un serveur (dans le même dossier). NB : Le protocole de fichier ne fonctionnera pas, vous devez utiliser un serveur pour cela:

 php -S localhost:8080 

Naviguez jusqu’à http: // localhost: 8080 et vous devriez voir hello world! .

Le code ci-dessus est dans un résumé , légèrement modifié pour afficher un message sur la page au lieu d’une alerte.

Le code essentiel fonctionnant sur bl.ocks.org . Il s’agit d’un environnement en mode bac à sable qui n’autorise pas les appels d’alerte. Je l’ai donc modifié pour append une balise h1.

Le paramètre d’URL getScript NB est relatif à la racine du site. Donc, dans votre cas, vous devez utiliser getScript (‘views / OrderPicking / orderPicking.js’, …) pour que cela fonctionne.

Le chemin sera relatif à la page à partir de laquelle il est chargé (et non au chemin de votre script d’initialisation), car il s’agit de l’URL à laquelle le navigateur se trouvera lorsqu’il exécutera la demande ajax.

Assurez-vous que votre code jQuery se produit une fois que le document est prêt (assurez-vous qu’il y a une sorte de vérification pour cela, simplement $(document).ready(function () { // code }); suffirait). En supposant qu’il soit prêt, le ci-dessous devrait fonctionner correctement.

 function test() { $.getScript('views/OrderPicking/orderPicking.js', function (data) { console.log(data); // should be the js file contents HelloWorld(); // should alert }); } 

Si vous utilisez jQuery 1.5+, il est préférable d’utiliser les rappels done et échoués comme suit:

 $.getScript('views/OrderPicking/orderPicking.js') .done(function (script) { HelloWorld(); }) .fail(function (jqxhr, settings, exception) { console.log('something went wrong!'); });