Saltar para o conteúdo principal
Versão: 20 R7 BETA

WA Evaluate JavaScript

WA Evaluate JavaScript ( {* ;} objeto ; codeJS {; tipo} ) : any

ParâmetroTipoDescrição
*OperadorSe especificado, objeto é um nome de objeto (string); se omitido, objeto é uma variável
objetoanyNome objeto (se * for especificado) ou Variável (se * é omitido)
codeJSTextCódigo Java Script
tipoIntegerTipo ao qual converter o resultado
ResultadoDate, Time, Object, Pointer, Real, TextResultado da função

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando WA Evaluate JavaScript executa na área web designada pelos parâmetros * e objeto o código JavaScript passado em codeJS e retorna o resultado.. Este comando deve ser chamado depois de carregar a página (o evento de formulário On End URL Loading deve ter sido gerado).

Por padrão, o comando devolve o resultado como cadeias. Pode utilizar o parâmetro opcional tipo para especificar a digitação do valor devolvido. Para fazer isto, passe uma das seguintes constantes, do tema "Tipos de campos e variáveis":

ConstanteTipoValor
Is BooleanInteiro longo6
Is collectionInteiro longo42
Is dateInteiro longo4
Is longintInteiro longo9
Is objectInteiro longo38
Is realInteiro longo1
Is textInteiro longo2
Is timeInteiro longo11

Aviso: Não é recomendado usar este comando para chamar diretamente uma função JavaScript que exibe um diálogo (alert(), print()...) porque o usuário não pode interagir com a área Web enquanto o código 4D roda. Se precisar implementar uma interface desse tipo, chame um código como setTimeout(function(){alert();}, 50)) para finalizar a execução do código 4D e permitir interação de usuário.

Exemplo 1

Este exemplo de código JavaScript faz com que a URL anterior seja mostrada.

 $result:=WA Evaluate JavaScript(MinhaWArea;"history.back()")

Exemplo 2

Este exemplo mostra algumas avaliações com conversão dos valores recebidos.

As funções JavaScript se localizam em um arquivo HTML:

<!DOCTYPE html>
<html>
    <head>
        <script>
        function evalLong(){
            return 123;
        }
        function evalText(){
            return "456";
        }
        function evalObject(){
            return {a:1,b:"hello world"};
        }
        function evalDate(){
            return new Date();
        }
    </script>
    </head>
    <body>
        TEST PAGE
    </body>
</html>

Escreva no método do formulário 4D:

 If(Form event code=On Load)
    WA OPEN URL(*;"Web Area";"C:\\myDatabase\\index.html")
 End if

Logo pode avaliar o código JavaScript desde 4D:

 $Eval1:=WA Evaluate JavaScript(*;"Web Area";"evalLong()";Is longint)
  //$Eval1 = 123
  //$Eval1 = "123" if type is omitted
 $Eval2:=WA Evaluate JavaScript(*;"Web Area";"evalText()";Is text)
  //$Eval2 = "456"
 $Eval3:=WA Evaluate JavaScript(*;"Web Area";"evalObject()";Is object)
  //$Eval3 = {"a":1,"b":"hello world"}
 $Eval4:=WA Evaluate JavaScript(*;"Web Area";"evalDate()";Is date)
  // $Eval4 = 06/21/13
  // $Eval4 = "2013-06-21T14:45:09.694Z" Se o tipo se omite

Ver também

WA EXECUTE JAVASCRIPT FUNCTION