Agregué un aviso en mi página, pero se carga antes de que se cargue la página. ¿Cómo solo muestro el mensaje una vez que se ve toda la página?
Aquí está mi aviso:
if (name == null || name == "") { txt == "No name provided"; } else { txt = "Hello, " + name + "! How are you today?"; } alert(txt);Si envuelve el código en un detector de eventos que escucha el evento DOMContentLoaded , se ejecutará solo una vez que el documento esté listo:
window.addEventListener('DOMContentLoaded', (e)=>{ if (name == null || name == "") { txt == "No name provided"; } else { txt = "Hello, " + name + "! How are you today?"; } alert(txt); });Sin embargo, he ajustado su código original a:
window.addEventListener('DOMContentLoaded', (e) => { // assign the name via the prompt() interface, and // declare both variables (rather than accidentally // creating globals): let name = prompt("Hi, what's your name?"), txt; // name won't be null, but it may be falsey, so here // we check if the name is falsey: if (!name) { // if the user cancels the prompt, prompt() returns // false; if they provide an empty-string that // empty string is falsey: txt = "No name provided"; // if the name variable is truthy: } else { // we use a template literal String to interpolate // the variable 'name' into that string: txt = `Hello, ${name}! How are you today?`; } // I wouldn't recommend alert, but I left this unchanged: alert(txt); });Referencias:
Entonces, para resolver el problema de las cargas rápidas antes de que se muestre la página:
script justo antes del cierre </body> no en la etiqueta <head> .DOMContentLoaded & addEventListener o simplemente con window.onload .Una de las formas más sencillas de hacer esto debe ser: window.onload = alert("text"); . Además, considere colocar el código justo antes de la etiqueta del body de cierre o usar un detector de eventos de algún tipo para un mayor control sobre la visualización del mensaje.