Quería llamar a una función definida en un archivo first.js en el archivo second.js. ambos archivos se definen en un archivo HTML como:
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Quiero llamar fn1()
definido first.js
en second.js
. De mis búsquedas, las respuestas fueron si first.js
se define primero es posible, pero a partir de mis pruebas no he encontrado ninguna manera de hacerlo.
Aquí está mi código:
second.js
document.getElementById("btn").onclick = function() {
fn1();
}
first.js
function fn1() {
alert("external fn clicked");
}
javascript
html
m0j1
fuente
fuente
Respuestas:
No se puede llamar a una función a menos que se haya definido en el mismo archivo o en uno cargado antes del intento de llamarla.
No se puede invocar una función a menos que esté en el mismo o mayor alcance que el que intenta llamarla.
fn1
Declaras la función en first.js, y luego en el segundo simplemente puedes tenerfn1();
1.js:
2.js:
index.html:
fuente
$(document).ready(function() {...})
bloque, y no funcionó. Lo moví y funcionó a las mil maravillas.Puede hacer que la función sea una variable global
first.js
y echar un vistazo al cierre y no ponerla en eldocument.ready
exteriorpuedes usar ajax también
de la misma manera que puede usar jquery getScript
fuente
1st JS:
2nd JS:
Espero que esto ayude ... Feliz codificación.
fuente
jQuery.getScript()
Podría considerar usar la sintaxis de exportación e importación es6. En el archivo 1;
Y luego en el archivo 2;
Tenga en cuenta que esto solo funciona si está utilizando
<script src="./file2.js" type="module">
No necesitará dos etiquetas de script si lo hace de esta manera. Simplemente necesita el script principal, y puede importar todas sus otras cosas allí.
fuente
cross-origin script load denied by cross-origin resource sharing policy
Debería funcionar así:
1.js
2.js
index.html
salida
Pruebe este fragmento de CodePen: enlace .
fuente
Tenga en cuenta que esto solo funciona si el
Las etiquetas están en el cuerpo y NO en la cabeza.
Entonces
=> función desconocida fn1 ()
Falla y
trabajos.
fuente
Use caché si su servidor le permite mejorar la velocidad.
Y luego úsalo así:
Opcionalmente, haga un prototipo para que sea más flexible. Para que no tenga que definir el archivo cada vez, si llama a una función o si desea obtener código de varios archivos.
fuente
first.js
Second.js
index.html
fuente
fuente
declarar función en ámbito global con ventana
first.js
second.js
incluir así
fuente
Esto en realidad está llegando muy tarde, pero pensé que debería compartir,
en index.html
en 1.js
en 2.js
fuente
use "var" mientras crea la función, luego puede acceder a eso desde otro archivo. asegúrese de que ambos archivos estén bien conectados a su proyecto y puedan acceder entre sí.
file_1.js
accediendo a esta función / archivo de forma variable file_2.js
Espero que esto ayude a alguien, ¡feliz codificación!
fuente
referencia de https://hype.codes/how-include-js-file-another-js-file
fuente
He tenido el mismo problema He tenido funciones definidas dentro de la función jquery document ready .
Y esta función xyz () la he llamado en otro archivo. Esto no funciona :) Tienes que definir la función arriba del documento listo .
fuente