es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función de toggle de iframe js no está funcionando correctamente.

Tengo esta función de JavaScript:

var iframeShowing = false;

async function show() {

var iframe1 = document.getElementById('help-popup');
iframe1.style.display = iframeShowing ? 'flex' : 'none';
iframeShowing = !iframeShowing;

}

El problema es que tengo que hacer clic dos veces para mostrar el iframe y hacer que funcione correctamente. Después de hacer clic dos veces, funciona correctamente (cada clic muestra y oculta el iframe). Pruébalo en el sitio web y lo entenderás.
Este es el código HTML:

<i class="fas fa-question-circle" id="questionmark" onclick="show();">

Este es el sitio web actual: https://personal-website.krix12.repl.co/
La función mencionada anteriormente se llama cuando se hace clic en el ícono de pregunta en azul.
¿Cómo puedo hacer que funcione en el primer clic?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para hacer que el iframe se muestre en el primer clic es inicializar la variable iframeShowing con el valor true en lugar de false al declararla. Esto hará que el iframe se muestre en el primer clic en lugar de requerir dos clics. Aquí está el código actualizado:

    var iframeShowing = true;
    
    async function show() { 
        var iframe1 = document.getElementById('help-popup');
        iframe1.style.display = iframeShowing ? 'flex' : 'none';
        iframeShowing = !iframeShowing;
    }
    

    Alternativamente, también podrías llamar a la función show() una vez al cargar la página para asegurarte de que el iframe se muestre inicialmente. Esto se puede hacer agregando la siguiente línea de código a tu JavaScript:

    show();
    

    Esto llamará a la función show() una vez cuando se cargue la página, lo que establecerá correctamente la variable iframeShowing y mostrará el iframe.

Comments are closed.