none
Não bloquear popup (Nova janela)

    Pergunta

  • Pessoal,

    Abro meus relatórios em uma nova janela assim:

     Response.Redirect("../Relatorios/PropostaSocio.aspx?Idrefere=" + 1+ "&IdTipoSoc=" +1, "_blank", "menubar=0,width=500,height=500,resizable=yes,");

    o problema é que a primeira vez que o utilizador clica no botão (para abrir o popup(nova Janela) o browser bloqueia, isto é, o utilizador terá que ir á opção do browser e permitir abrir popup. Isto não é prático quando se trata de utilizadores com pouco entendimento disto e não sabem que terão que ir lá ao browser fazer isso. Será que existe alguma forma em código de contornar isso?



    Marcos Ruiz

    sexta-feira, 28 de junho de 2013 13:49

Todas as Respostas

  • Bom dia Marcos,

    As formas de contornar isso existe, mas nenhuma que impeça do popup (uma nova janela) ser bloqueado, pois o bloqueio que o browser faz é uma funcionalidade de segurança.

    Sugiro você idetificar se o popup foi bloqueado, se foi bloqueado você exibe uma alerta orientado o usuário como deve proceder.

    var janela = window.open("Seu popUp", "ATRIBUTOS","POPUP.HTM");
    if(janela == null) {
    alert("FOI BLOQUEADO!");
    }

    Outra forma é você usar o controle Dialog do JQuery, é similar ao um popup, mas não é bloqueado pelo browser.

    Informações sobre Dialog do JQuery

    http://jqueryui.com/dialog/


    Fábio Alencar - MCP, MS e MCSD

    • Sugerido como Resposta Alexandre Rapaki sexta-feira, 28 de junho de 2013 19:29
    sexta-feira, 28 de junho de 2013 14:11
  • Boa Tarde Marcos, não sei se você já resolveu seu problema, uma solução para isso é você utilizar janela modal do jquery, assim ela não será bloqueada.

    Hugo Campos

    sexta-feira, 28 de junho de 2013 21:02
  • Hugo como utlizo jquery no response.redirect, quando estou no formulário basta colocar um id dentro da tag que ele abra o modal, mas pesquisei e não consigo implementar. vc teria algum exemplo?


    Marcos Ruiz

    terça-feira, 2 de julho de 2013 02:19
  • Sim eu vou monta um exemplo simples de como vc vai abri a janela modal. E posto aqui

    Hugo Campos

    terça-feira, 2 de julho de 2013 14:39
  • olha um exemplo direto do site do jquery. http://jqueryui.com/dialog/#modal

    Hugo Campos

    terça-feira, 2 de julho de 2013 14:46
  • então, esse exemplo ate consigo implementar ele quando o chamo a pagina destino dentro da .aspx, porém como tenho um regra de negocio no codigo behind direciona para pagina destino pelo response. redirect.

    e não estou conseguindo implementar no code behind entendeu?

    preciso chamar esse cara no behinf:

    $("#various1").fancybox({
        'width': '75%',
        'height': '75%',
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe'
    });

    Marcos Ruiz


    terça-feira, 2 de julho de 2013 15:00
  • Ok vamos la, você não ta utilizando ajax nw neh? se tiver fica mais facil utilizando o tipo de retorno json.

    na pagina que abre o modal vc faria +ou- assim:

     $('#nomedobotao').submit(function (e) {

     e.preventDefault();

                $.post(
                $(this).attr("action"),
                $(this).serialize(),

                function (retorno) {

      if (retorno.Resultado != 'alguma validacao referente ao post') {

                        $("#ajax_dialog").remove();
                        window.setTimeout(function () { location.href = '@Url.Content("~/paginaondeseraredirecionada")'; }, 500);

    }

     }, "json");

    })

    Veja se ajuda.


    Hugo Campos

    terça-feira, 2 de julho de 2013 15:49
  • eu estou usando jquery, será q da certo?

    Marcos Ruiz

    terça-feira, 2 de julho de 2013 15:53
  • da certo sim. eu utilizo assim no sistema da empresa.

    Hugo Campos

    terça-feira, 2 de julho de 2013 16:45