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!'); });