bom dia

41 views
Skip to first unread message

Paulo Rorberto

unread,
Sep 2, 2024, 8:32:46 AMSep 2
to Google Apps Script Community
function LoginUser() {
      var username = document.getElementById("username").value;
      var password = document.getElementById("password").value;

      google.script.run.withSuccessHandler(function (output) {
        if (output === 'TRUE') {
                    var url1 = "<?= myURL(); ?>?page=User"
              var winRef = window.open(url1);
             winRef ? google.script.host.close() : window.onload = function() { window.location.href = url1; };
             
           } else if (output === 'FALSE') {
          document.getElementById("errorMessage").innerText = "Dados inválidos!";
        }
      }).checkLogin(username, password);
    }
    alguém poderia por favor me dizer por depois de fazer o logim a pagina do login não fecha.

TempleSnr

unread,
Sep 2, 2024, 9:57:37 AMSep 2
to Google Apps Script Community
I hope this helps - just for fun - I asked, and this is what Gemini says ... 

Vou explicar porque a página de login pode não estar fechando após o login no código fornecido:

O problema:

O código usa duas abordagens diferentes para fechar a janela de login dependendo do resultado da função checkLogin no Google Apps Script:

  1. google.script.host.close(): Esta função tenta fechar a janela de login do lado do servidor, após uma resposta bem-sucedida do script.
  2. window.onload = function() { window.location.href = url1; };: Este código tenta redirecionar para outra página (url1) usando Javascript, caso a tentativa de fechar do servidor falhe.

Possíveis causas:

Há algumas razões pelas quais o fechamento da janela pode não estar funcionando:

  • google.script.host.close() nem sempre funciona: Fechar janelas do lado do servidor pode ser bloqueado por pop-ups do navegador ou configurações de segurança.
  • winRef pode ser nulo: A variável winRef verifica se a janela para url1 foi aberta com sucesso. Se for nulo, a tentativa de fechar do servidor falha e a segunda abordagem tenta o redirecionamento.

Possíveis soluções:

  • Confie apenas no redirecionamento: Remova a linha google.script.host.close() e confie apenas no redirecionamento via Javascript para url1. Isso pode ser mais confiável.
  • Verifique o valor de winRef: Adicione um log para verificar o valor de winRef antes de tentar fechar a janela do servidor. Se for nulo, investigue por que a janela não está sendo aberta.

Melhorias adicionais:

  • Mensagem de login bem-sucedido: Você pode adicionar uma mensagem de "Login efetuado com sucesso" antes do redirecionamento para informar o usuário.
  • Tratamento de erros: Melhore o tratamento de erros para exibir mensagens mais informativas ao usuário caso o login falhe.

Espero que esta explicação em português ajude a entender o problema e como corrigi-lo. Se precisar de mais ajuda, não hesite em perguntar!

Emerson Maia

unread,
Sep 2, 2024, 10:25:49 AMSep 2
to google-apps-sc...@googlegroups.com
O problema no seu código é que a função google.script.host.close() pode não funcionar em todos os navegadores,especialmente se a janela foi aberta pelo usuário (e não pelo script). A solução é usar uma combinação de window.open()window.location.href para garantir que a página de login seja fechada ou redirecionada após um login bem-sucedido,independentemente do navegador.

Tente algo assim
function LoginUser() { const username = document.getElementById("username").value; const password = document.getElementById("password").value; google.script.run.withSuccessHandler(function(output) { if (output === 'TRUE') { const url1 = "<?= myURL(); ?>?page=User"; const winRef = window.open(url1); // Se a janela foi aberta com sucesso, fecha a janela atual if (winRef) { window.close(); } else { // Se não, redireciona a janela atual para a nova URL window.location.href = url1; } } else if (output === 'FALSE') { document.getElementById("errorMessage").innerText = "Dados inválidos!"; } }).checkLogin(username, password); }


Expert  Docs

Emerson Maia

Goiânia Go

Brazil




Disclaimers apply, for full details see: https://hackney.gov.uk/email-disclaimer

--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/10abbbac-13fc-47af-8c69-9e31bc8e4419n%40googlegroups.com.

Paulo Rorberto

unread,
Sep 9, 2024, 8:48:09 AMSep 9
to google-apps-sc...@googlegroups.com
Obrigado

You received this message because you are subscribed to a topic in the Google Groups "Google Apps Script Community" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-script-community/yuzjRBlAYio/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-script-community/CADH-QrBwYNPpUi1X49DO0pdYfXP-err4XYRWsQzFVdesQdisYg%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages