Ao clicar em qualquer lugar da página abrir uma nova pagina e com limite por tempo?


Em resumo seria isto:

<script>
(function () {
    var isOpened = false;

    //Troque aqui pelo site desejado
    var siteUrl  = "http://www.google.com.br";

    document.addEventListener("click", function(){
        if (!isOpened) {
            isOpened = !!window.open(siteUrl, "_blank");
        }
    });
})();
</script>

Adiciona o evento click ao document., use window.open sem parametros de configuração de janela, criei uma variavel isOpened pra verificar se o pop-up já foi aberto, acaso tenha sido clicado então ignora os próximos cliques (também dá pra usar document.removeEventListener)

Nota [1]: Eu adicionei o !! na frente do window.open porque alguns plugins de bloqueio de popup bloqueiam até chamadas vindas de cliques, então window.open retorna null, assim você saberá se o popup foi aberto ou não.

Nota [2]: Usei uma função anonima pra isolar as variaveis do escopo global, assim evitando acidentes.

Limitar pop-up por tempo [extra]

O AP me solicitou uma funcionalidade extra, estou separado do contexto acima pois o código acima acredito que ajudará pessoas em especificas situações, neste caso o AP deseja limitar a cada 24 horas um click, ou seja abriu o pop-up uma vez só daqui 24 horas irá ocorrer novamente, mesmo que atualize a página.

Isto pode ser resolvido usando cookies, por exemplo:

<script>
//Função pra verificar se a janela foi já aberta hoje
function checkOpenPopupToday()
{
      return /(^|;\s)isopenedpopup=1(;|$)/.test(document.cookie);
}

//Função pra definir em horas que a janela foi aberta
function setOpenPopupToday(hours)
{
    var date = new Date();
    date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
    document.cookie = "isopenedpopup=1; expires=" + date.toGMTString() + "; path=/";
}

(function () {
    //Troque aqui pelo site desejado
    var siteUrl  = "http://www.google.com.br";

    //Troque aqui pelo tempo em horas desejado para impedir que o popup abra neste intervalo
    var hours = 24;

    document.addEventListener("click", function()
    {
        //Verificar pelo cookie
        if (!checkOpenPopupToday())
        {
            //Verificar se o popup abriu com o clique
            if (!!window.open(siteUrl, "_blank"))
            {
                  //Se a janela foi aberta define o tempo para bloquear novas aberturas
                  setOpenPopupToday(hours);
            }
        }
    });
})();
</script>

Outros canais


Comente :