none
Executar função JavaScript RRS feed

  • Pergunta

  • Boa tarde a todos,

    Estou tentando executar uma função JavaScript no code behind que chama uma função de notificação Toast, mais não estou obtendo sucesso.

    O que acontece, uma função simples de soma funciona perfeitamente mais uma função que depende de uma referencia externa "http" não funciona.

    Alguém poderia me socorrer?

    Segue o meu método.

    protected void ShowStatus()
            {
    
                string message = "teste mensagem";
                string title = "teste titulo";
                string type = "warning";
                bool clearToast = false;
                string pos = "toast-top-right";
                bool Sticky = false;
    
    
    
                WebBrowser browser = new WebBrowser();
    
                browser.Navigate("");
    
    
    
                StringBuilder script = new StringBuilder();
    
    
    
                script.AppendLine("<script src=\"http://code.jquery.com/jquery-1.9.1.min.js\" type=\"text/javascript\">");
                script.AppendLine("</script>");
    
                script.AppendLine("<link href=\"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/css/toastr.css\" rel=\"stylesheet\" >");
                script.AppendLine("</script>");
    
                script.AppendLine("<script src=\"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/js/toastr.js\" type=\"text/javascript\">");
                script.AppendLine("</script>");
    
    
                script.AppendLine("<script language=\"javascript\" type=\"text/javascript\">");
    
                script.AppendLine("function Notify(msg, title, type, clear, pos, sticky)");
    
                script.AppendLine("    {");
    
                script.AppendLine("if (clear == true)");
                script.AppendLine("    {");
                script.AppendLine("toastr.clear();");
                script.AppendLine("    }");
    
    
                script.AppendLine("(sticky == true)");
                script.AppendLine("    {");
                script.AppendLine("toastr.tapToDismiss = true;");
                script.AppendLine("toastr.timeOut = 10000;");
                script.AppendLine("    }");
    
    
                script.AppendLine("toastr.options.onclick = function ()");
                script.AppendLine("    {");
    
                script.AppendLine("    }");
                script.AppendLine("toastr.options.positionClass = pos;");
    
                script.AppendLine("if (type.toLowerCase() == 'info')");
                script.AppendLine("    {");
                script.AppendLine("toastr.options.timeOut = 5000;");
                script.AppendLine("toastr.tapToDismiss = true;");
                script.AppendLine("toastr.info(msg, title);");
                script.AppendLine("    }");
    
    
                script.AppendLine("if (type.toLowerCase() == 'success')");
                script.AppendLine("    {");
                script.AppendLine("toastr.options.timeOut = 3500;");
                script.AppendLine("toastr.success(msg, title)");
                script.AppendLine("    }");
    
                script.AppendLine("if (type.toLowerCase() == 'warning')");
                script.AppendLine("    {");
                script.AppendLine("toastr.options.timeOut = 3000;");
                script.AppendLine("toastr.success(msg, title)");
                script.AppendLine("    }");
    
    
                script.AppendLine("if (type.toLowerCase() == 'error')");
                script.AppendLine("    {");
                script.AppendLine("toastr.options.timeOut = 3000;");
                script.AppendLine("toastr.success(msg, title)");
                script.AppendLine("    }");
    
    
                script.AppendLine("    }");
                script.AppendLine("</script>");
    
    
    
                browser.Document.Write(script.ToString());
               
                string ret = browser.Document.InvokeScript("Notify", new object[] { message, title, type, clearToast, pos, Sticky }).ToString();
                
                MessageBox.Show(ret);
    
                
            }

    Segue o erro.

    Desde já muito obrigado!

    segunda-feira, 23 de dezembro de 2019 16:41

Todas as Respostas

  • Marcio,

    Remova o espaço a mais que tem nesta declaração no final:

    Esta assim:

    script.AppendLine("<link href=\"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/css/toastr.css\" rel=\"stylesheet\" >");

    Deixe assim:
    script.AppendLine("<link href=\"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/css/toastr.css\" rel=\"stylesheet\">");


    ** Uma dica, ao invés fazer link com os arquivos necessários direto da web, eu  sugiro que baixe os arquivos  JQuery.min.js, Toastr.css e Toastr.js e coloque em uma pasta dentro do seu projeto e mude as referencia para eles, assim evita que não funcione quando estiver sem internet na maquina que estará executando **
    segunda-feira, 23 de dezembro de 2019 17:21
  • Boa tarde Luciano,

    Obrigado pelo retorno!

    Então apresentou o mesmo erro mais notei que não vai funcionar do jeito que estava imaginando, a notificação via js só vai rodar se o navegador estiver aberto e não é oque eu quero.

    Gostaria que a notificação toast fosse independente do navegador. 

    segunda-feira, 23 de dezembro de 2019 19:13
  • Quando fiz o teste removendo o espaço não deu esse erro!
    Mas em relação a funcionalidade talvez você tenha que instalar algum plugin de terceiros para que consiga o que precisa.
    segunda-feira, 23 de dezembro de 2019 20:10