Pregunta Javascript antes de onload?


¿Hay algún controlador de eventos antes de onLoad / onPageShow? El problema con onLoad es que si hay algún cambio en la pantalla, la página se mostrará sin cambios hasta que esté completamente cargada, luego se ejecutará la secuencia de comandos. ¿Cuál es la mejor manera de asegurarse de que se ejecutará lo antes posible?


13
2017-08-21 06:03


origen


Respuestas:


Si pones Javascript declaraciones (en lugar de definiciones de funciones) dentro de una <script> etiqueta, se ejecutarán durante la carga de la página, antes de que se active el evento onLoad.

 <html>
 <body>
   <h2>First header</h2>
   <script type="text/javascript">
     alert("Hi, I am here"); 
     document.write("<h3>This is Javascript generated</h3>");
   </script>
   <h2>Second header</h2>
 </body>
 </html>

La advertencia es que no puede buscar elementos por ID porque es posible que estos elementos aún no se hayan procesado, por lo que su capacidad para cambiar la página de esa manera es limitada.

Línea de fondo: posible, no recomendado.

Lo que suelo hacer en tales situaciones es el siguiente:

  • Haga que las partes de la página que pueden cambiar sean invisibles (a través de style="visibility:hidden;");
  • Haga que onLoad ejecute un código de Javascript que cambie la página y luego configure la visibilidad de dichas partes para visibility:visible.

23
2017-08-21 06:09



La respuesta simple es colocar la llamada de función después del elemento DOM dentro de las etiquetas de script, dentro del cuerpo de la página. Tuve este problema al utilizar una función de JavaScript para darle estilo a mis enlaces de menú de navegación, sin embargo, tenía un elemento de mapa de google que hacía que la página se cargara lentamente. En esta página particular, ejecuté el script justo después del enlace. Es una solución, quizás no la mejor, pero funciona. Espero que esto ayude.


-1
2017-12-17 00:36