Cómo evitar que se active un evento hasta que Javascript esté completamente cargado

En condiciones normales, las secuencias de comandos insertadas en el HTML se invocan inmediatamente después de cargarlas. A veces, los scripts comienzan a ejecutar instrucciones relacionadas con DOM incluso antes de que el navegador termine de analizar el HTML y configure la estructura DOM, lo que impide que el código JS funcione correctamente. Para evitar que esto suceda, tiene cuatro opciones.

  1. atributo async : puede agregar el atributo async a su etiqueta de script como consecuencia, el script externo se carga de forma asíncrona junto con el DOM. Ni la carga del script bloquea el análisis HTML ni tiene el efecto de una invocación prematura del script. Supongo que esto es lo mejor de ambos mundos.
  2. atributo de defer : puede agregar el atributo de a su etiqueta de secuencia de comandos como consecuencia, la secuencia de comandos externa se carga solo después de analizar el HTML a pesar de estar incluido en la parte superior, en la sección .
  3. Reubicar la etiqueta del script: este es el truco más antiguo para evitar esta situación. En este caso, incluye la etiqueta de secuencia de comandos en la parte inferior de su HTML, preferiblemente justo antes de y se carga e invoca después de analizar el HTML.
  4. En caso de que el archivo de script sea local y no desee utilizar las opciones dadas anteriormente, otro enfoque sería envolver su script en una función y asignarlo como un controlador al detector de eventos window.onload como se muestra a continuación. Es como una cuña para defer atributo, supongo.

// su archivo script.js tiene este aspecto
window.onload = function () {
var el = document.getElementById (“type1”);
console.log (el);
};

Si está utilizando jQuery, use

$ (documento) .ready (función () {
// código aquí
});

Detalles: Centro de aprendizaje jQuery

Si está utilizando JavaScript simple y simple, simplemente agregue sus etiquetas de script al final del archivo html justo antes de la etiqueta final . Como una página HTML se carga de arriba a abajo, este método asegura que el cuerpo se cargue primero y luego los scripts. Hay otras formas de hacer esto usando atributos de etiqueta de script, pero esta es la forma más simple.

¡La mejor de las suertes!

Vería la biblioteca jQuery y haría algo como

$ (documento) .ready (función () {
// tu javascript aquí

});

que esperaría hasta que el DOM esté completamente cargado. Desde allí, si la pantalla no está lista, puede hacer un setTimeout o usar $ .Permitido para ejecutar su JavaScript en el momento adecuado

Si está utilizando jQuery, así:

$ (function () {
//tu codigo
prueba var = $ (‘# prueba’);
console.log (prueba);
});

Si no, así:

window.onload = function () {
prueba var = document.getElementById (‘prueba’);
console.log (prueba);
}

More Interesting

¿Qué habilidades se necesitan para conseguir un trabajo de desarrollador de Ruby on Rails en 2017?

¿Cuáles son algunas reseñas de alumbre Bloc.io?

Para un B. Tech. Graduado de CSE que aún no ha comenzado a programar, ¿es bueno comenzar con Python y JavaScript? En caso afirmativo, ¿cuáles son los mejores libros para dominar Python y JavaScript en un nivel de principiante?

¿Cuál es la mejor plataforma para construir un sitio web personal?

¿Es posible ejecutar AfterEffects en un servidor para reproducir videos sobre la marcha con imágenes y texto?

¿Cuáles son los frameworks / tecnologías relacionadas con Java que están actualmente de moda y más 'en demanda'? ¿Por qué?

Cómo manejar ventanas emergentes en JavaScript

¿Cuáles son los productos de software más demandados que se pueden construir utilizando tecnologías web?

¿Cuál es la mejor empresa para crear sitios web?

¿En qué herramientas sugeriría que un desarrollador front-end invierta para mejorar sus capacidades o flujo de trabajo?

Cómo hacer una página web profesional casi sin experiencia en programación web (templetes gratuitos, etc.)

¿Cuánto tiempo tardaré en saber si tengo un don para el desarrollo o la programación de sitios web? Tengo cero experiencia y deseo como mínimo aprender HTML, CSS y Javascript.

Cómo probar si a los usuarios les gusta una funcionalidad actualizada

¿Cuáles son sus métodos preferidos para escribir CSS?

¿Por qué la página web de la herramienta de validación del W3C no puede ser validada perfectamente por su validador?