Estoy tratando de llamar a una función dentro de la página html desde un archivo index.js externo cargado, pero siempre obtengo
Uncaught ReferenceError: displayy is not definedDentro de mi página html:
<script type="text/javascript" src="index.js"></script> <script> $( document ).ready(function() { displayy(); }); </script> El archivo index.js :
$( document ).ready(function() { alert('loaded'); function displayy() { alert('executed'); } });También he intentado:
<script> window.onload = function() { displayy(); }; </script> <script> document.addEventListener("DOMContentLoaded", function(event) { displayy(); }); </script>No necesita volver a ejecutar displayy desde el script. Los siguientes trabajos:
$(document).ready(function() { alert('loaded'); displayy(); function displayy() { alert('executed'); } }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Dentro de su index.js puede llamar a su función usando el objeto de window .
window.displayy = function(){ return "hello!" } y luego lo llamas window.displayy(); o displayy();
Una mejor solución es declarar su función en el ámbito superior de esta manera:
var displayy; $( document ).ready(function() { alert('loaded'); displayy = function () { alert('executed'); } });NB: el uso de variables globales es malo, pero debería resolver su problema. Eche un vistazo aquí: Escuché que las variables globales son malas, ¿qué solución alternativa debo usar?
Adjunte sus funciones al objeto de la window . Algo como esto:
// Set the container! window.app = {}; // Define the function. window.app.say_hello = function(name) { alert(`Hello ${name}`); }; // Call the function. app.say_hello("Iran");Intenté todo. Solo esta solución funcionó. :)