Estaba desarrollando una aplicación que muestra una ventana emergente mediante programación después de 5 segundos, pero descubrí que los navegadores web como Firefox, Chrome, Internet Explorer, etc. estaban bloqueando la ventana emergente.
Bloqueo de ventanas emergentes En el pasado, los sitios maliciosos abusaban mucho de las ventanas emergentes. Una mala página podría abrir toneladas de ventanas emergentes con anuncios. Así que ahora la mayoría de los navegadores intentan bloquear las ventanas emergentes y proteger al usuario.
La mayoría de los navegadores bloquean las ventanas emergentes si se llaman fuera de los controladores de eventos activados por el usuario como onclick
Por defecto, los navegadores web modernos bloquean las ventanas emergentes activadas por una función o código. Pero no bloquea las ventanas emergentes que se activan al hacer clic en los botones.
// popup blocked window.open('https://javascript.info'); // popup allowed button.onclick = () => { window.open('https://javascript.info'); };Así que tuve que eludir su política de bloqueo haciendo clic en el botón mediante programación después de 5 segundos para seguir iniciando la misma ventana emergente.
Así que decidí publicar esto como una pregunta y también responderla yo mismo para aquellos que podrían estar enfrentando el mismo problema.
Paso 1. Cree un botón, asígnele una ID y pase un nombre de función en onClick
<button id="buttonID" onclick="trigerPopup()"></button> Paso 2 Crea la función trigerPopup
function trigerPopup(){ alert("Hello I am poping up after 5 seconds"); //your code goes here }Paso 3 Después de 5 segundos, se hizo clic programáticamente en el botón
window.setTimeout(function () { //this will trigger a click on the button const buttonID = document.getElementById('buttonID').click(); }, 5000);Gracias chicos
Paso 1. Cree un botón, asígnele una ID y pase un nombre de función en onClick
<button id="buttonID" onclick="trigerPopup()"></button> Paso 2 Crea la función trigerPopup
function trigerPopup(){ alert("Hello I am poping up after 5 seconds"); //your code goes here }Paso 3 Después de 5 segundos, se hizo clic programáticamente en el botón
window.setTimeout(function () { //this will trigger a click on the button const buttonID = document.getElementById('buttonID').click(); }, 5000);