Abrir página em nova aba

38 views
Skip to first unread message

Leandro Paz

unread,
Nov 5, 2017, 6:48:00 PM11/5/17
to web2py-users-brazil
Boa noite pessoal, estou precisando abrir uma url em uma nova aba.

O que devo colocar no redirect para que a página seja aberta em uma nova aba do navegador?

Se fosse um link na view já tinha feito, adicionando o _target="_blank". Por exemplo:

{{=A(TAG.button('Realizar Inscrições com Isenção de Taxa'),_target="_blank",_href=URL(r=request,c='default',f='inscrever_usuario_com_isencao',args=[linha_evento[0].id_url or linha_evento[0].id]))}}
 
Mas no redirect não tenho a mínima idéia de como fazer, agradeço quem puder ajudar.

Segue o meu controller
########################################
def validar_certificado():

    campos = [ Field('codigo_certificado',label='Código de Identificação do Certificado',
comment='O código deve ser da forma x-xxxx-xx, inclusive com o hífen.') ]

    form = SQLFORM.factory(*campos,
        submit_button='Verificar Validade',
        args=request.args[:1])#

    if form.process(onvalidation=validators_verificar_cod_certificado).accepted:
        redirect(URL(c='certificado',f='validar_codigo_e_abrir_certificado', args=[str(form.vars.codigo_certificado)]))
        #LOAD(c='certificado',f='validar_codigo_e_abrir_certificado', args=[str(form.vars.codigo_certificado)])
    elif form.errors:
        response.flash = 'Erros no formulário!'   

    return dict(form=form)

Carlos Costa

unread,
Nov 6, 2017, 5:33:00 AM11/6/17
to web2py-us...@googlegroups.com
Acho que não dá não.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

Leandro Paz

unread,
Nov 6, 2017, 5:07:36 PM11/6/17
to web2py-users-brazil
Só consegui fazer com JavaScript.

Segue solução.

##################
<link rel="stylesheet" href="{{=URL('static','css/bootstrap.min.css')}}"/>
<link rel="stylesheet" href="{{=URL('static','css/web2py-bootstrap3.css')}}"/>
<link rel="shortcut icon" href="{{=URL('static','images/favicon.ico')}}" type="image/x-icon">
<link rel="apple-touch-icon" href="{{=URL('static','images/favicon.png')}}">

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Validação</title>
    </head>
    <body>


        <h4>
            <center>
                <div style="max-width:350px; border:3px solid black; padding: 20px;">


                    <h3>
                        <b> VALIDAÇÃO DE CERTIFICADOS</b>
                    </h3>
                    <br>


                    <h3>

                        <label style="font-size: 80%" >Código de Identificação do Certificado</label>
                        <input  style="font-size: 80%" id="codigo_certificado" name="codigo_certificado" class="form-control" value=''/>

                        <label style="font-size: 60%"> O código deve ser da forma x-xxxx-xx, inclusive com o hífen.</label>

                        <br> <br>

                        <button type="button" class="btn btn-primary botao_verificar">
                            Verificar Validade
                        </button>
                        <br><br>

                    </h3>



                </div>
            </center>
        </h4>


    </body>
</html>

<script src="{{=URL('static','js/jquery.js')}}" type="text/javascript" charset="UTF-8"></script>

<script>
    function validar_e_abrir(argumento){
        argumento = $("#codigo_certificado").val();
        if (argumento!=''){
            alert('Recurso em construção.')
            window.open("{{=URL(c='certificado',f='validar_codigo_e_abrir_certificado')}}"+"/"+argumento,'_blank' );
            }
    }

    jQuery('.botao_verificar').click(function(){
            validar_e_abrir(argumento)
        });


    jQuery('#codigo_certificado').keypress(function(e){
          if(e.which == 13){
                              argumento = $("#codigo_certificado").val();
                              validar_e_abrir(argumento)
                            }
        });

</script>


Carlos Costa

unread,
Nov 7, 2017, 5:28:58 AM11/7/17
to web2py-us...@googlegroups.com
Exatamente. Só é possível assim pelo browser.

PS: o parâmetro "argumento" está sendo sempre substituído por $("#codigo_certificado").val()
Dessa forma ele está sendo inútil.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Leandro Paz

unread,
Nov 7, 2017, 6:52:08 AM11/7/17
to web2py-users-brazil
Obrigado Carlos, realmente tinha um erro nesta variável argumento.

Segue correção:
<script>
    function validar_e_abrir(){
        argumento = $("#codigo_certificado").val();
        if (argumento!=''){
            alert('Recurso em construção.')
            window.open("{{=URL(c='certificado',f='validar_codigo_e_abrir_certificado')}}"+"/"+argumento,'_blank' );
            }
    }

    jQuery('.botao_verificar').click(function(){
            validar_e_abrir()
        });


    jQuery('#codigo_certificado').keypress(function(e){
          if(e.which == 13){
                              validar_e_abrir()
                            }
        });

</script> 
Reply all
Reply to author
Forward
0 new messages