Je voulais appeler une fonction définie dans un fichier first.js dans le fichier second.js. les deux fichiers sont définis dans un fichier HTML comme:
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Je souhaite appeler fn1()
défini first.js
dans second.js
. D'après mes recherches, les réponses étaient si first.js
défini en premier, c'est possible, mais d'après mes tests, je n'ai trouvé aucun moyen de le faire.
Voici mon code:
second.js
document.getElementById("btn").onclick = function() {
fn1();
}
first.js
function fn1() {
alert("external fn clicked");
}
javascript
html
m0j1
la source
la source
Réponses:
Une fonction ne peut être appelée que si elle a été définie dans le même fichier ou chargé avant la tentative de l'appel.
Une fonction ne peut être appelée que si elle est dans la même portée ou plus que celle qui tente de l'appeler.
Vous déclarez la fonction
fn1
dans first.js, puis dans la seconde, vous pouvez simplement avoirfn1();
1.js:
2.js:
index.html:
la source
$(document).ready(function() {...})
bloc et cela ne fonctionnait pas. Je l'ai déplacé et cela a fonctionné comme un charme.Vous pouvez faire de la fonction une variable globale dans
first.js
et jeter un œil à la fermeture et ne pas la mettredocument.ready
dehorsvous pouvez aussi utiliser ajax
de la même manière que vous pouvez utiliser jquery getScript
la source
1er JS:
2ème JS:
J'espère que cela aidera ... Bon codage.
la source
jQuery.getScript()
Vous pouvez envisager d'utiliser la syntaxe d'import-export es6. Dans le fichier 1;
Et puis dans le fichier 2;
Veuillez noter que cela ne fonctionne que si vous utilisez
<script src="./file2.js" type="module">
Vous n'aurez pas besoin de deux balises de script si vous procédez de cette façon. Vous avez simplement besoin du script principal et vous pouvez y importer tous vos autres éléments.
la source
cross-origin script load denied by cross-origin resource sharing policy
Cela devrait fonctionner comme ceci:
1.js
2.js
index.html
production
Essayez cet extrait de CodePen: lien .
la source
Veuillez noter que cela ne fonctionne que si le
les balises sont dans le corps et PAS dans la tête.
Alors
=> fonction inconnue fn1 ()
Échoue et
travaux.
la source
Utilisez le cache si votre serveur lui permet d'améliorer la vitesse.
Et puis utilisez-le comme ceci:
Eventuellement, faites-en un prototype pour le rendre plus flexible. Pour que vous n'ayez pas à définir le fichier à chaque fois, si vous appelez une fonction ou si vous souhaitez récupérer du code à partir de plusieurs fichiers.
la source
first.js
Second.js
index.html
la source
la source
déclarer la fonction dans la portée globale avec window
first.js
second.js
inclure comme ça
la source
Cela arrive en fait très tard, mais j'ai pensé que je devrais partager,
dans index.html
dans 1.js
dans 2.js
la source
utilisez "var" lors de la création de la fonction, vous pouvez y accéder à partir d'un autre fichier. assurez-vous que les deux fichiers sont bien connectés à votre projet et peuvent accéder l'un à l'autre.
file_1.js
accès à cette fonction / variable sous forme de fichier file_2.js
j'espère que cela aidera quelqu'un, bon codage !!!
la source
référence de https://hype.codes/how-include-js-file-another-js-file
la source
J'ai eu le même problème. J'ai eu des fonctions définies dans la fonction prête pour le document jquery .
Et cette fonction xyz () que j'ai appelée dans un autre fichier. Cela ne fonctionne pas :) Vous devez définir la fonction ci-dessus document prêt .
la source