Site que utilizam popup geralmente têm problemas com os bloqueadores de popup. Internet Banking e outros geralmente abrem uma janela para que o usuário possa continuar navegando no site e concluir o processo que havia iniciado.
Dessa forma se faz necessário detectar antecipadamente se o usuário possui ou não o bloqueador de popup ativado, com isso ele pode ser avisado, desativar o bloqueador e continuar navegando no site.
O script abaixo, em JavaScript, se propõe justamente a isso, detectar se o usuário possui ou não um bloqueador de popups ativado e avisá-lo da situação.
var tentativa = 1;Este script tenta abrir uma janela popup, caso não consiga, inicia a sequência de avisos ao usuário. Caso consiga abrir a janela, nenhuma mensagem é exibida e o usuário segue a navegação normalmente.
var aviso = 1;
function getBloqueador()
{
var janela = window.open("#","janelaBloq", "width=10, height=10, top=0, left=0, scrollbars=no, status=no, resizable=no, directories=no, location=no, menubar=no, titlebar=no, toolbar=no");
if (janela == null)
{
if (tentativa == 1)
{
alert("Bloqueador de popup ativado. Desabilite para continuar.");
tentativa++;
return false;
} else if ((tentativa > 1) && (tentativa <= 3))
{
alert("Tentativa " + tentativa + " de 3: O bloqueador ainda está ativado.");
tentativa++;
return false;
} else if (tentativa > 3)
{
if (aviso == 1)
{
if (confirm("O bloqueador de popups ainda está ativado, você pode ter dificuldades para acessar o site.\n\nDeseja continuar assim mesmo?"))
{
aviso = 0;
return true;
} else
{
aviso = 0;
return false;
}
}
}
} else
{
janela.close();
return true;
}
}
Clique em links que abrem em uma janela não são considerados popup, ou seja, as janelas que abrem automaticamente são consideradas popup.
Este script pode ser usado no
<body>
, com o evento onLoad()
, no evento onMouseOver()
de algum elemento (um botão ou link, por exemplo).