Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17689|Resposta: 4

[Nova Edição] Problema com C# winform call js

[Copiar link]
Publicado em 18/02/2020 10:30:34 | | |
Um esquema de chamada C# para JS encontrado na Internet  
   string pública GetTimeByJs()
        {
            Tipo obj = Tipo.ObTipoFromProgID("ScriptControl");
            se (obj == null) retorne null;
            objeto: ScriptControl: = Activator.CreateInstance(obj);
            Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, novo objeto[] { "JavaScript" });
            string js = "função time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + soma }";
            Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, novo objeto[] { js });
            Retorne objetos. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString();
        }   


O teste está bom.
tempo (1, 2, '1 + 2'), onde os parâmetros passados são (número 1, número 2, string 1+2).
Mas há uma questão, novo objeto[] { "time(1, 2, '1 + 2')" }, se o argumento do método JS for do tipo byte[], como ele deve ser escrito ao chamar?





Anterior:SQLyog-12.0.9-0 com código de registro
Próximo:Revisão do upload de recursos
Publicado em 18/02/2020 10:56:17 |
Os tipos de dados JavaScript podem ser divididos em duas categorias:

tipo primitivo: por exemplo, Indefinido, Nulo, Booleano, Número, Cadeia
Valor do tipo de referência, ou seja, tipo de objeto: Tipo de objeto, como Objeto, Array, Função, Data



Os argumentos dos métodos JS não possuem byte[], tudo é objeto
Utilize o Jurassic para executar funções js em .net
https://www.itsvse.com/thread-4303-1-1.html
(Fonte: Architect_Programmer)


 Senhorio| Publicado em 18/02/2020 14:10:18 |
Xiao Zhazha Postado em 2020-2-18 10:56
Os tipos de dados JavaScript podem ser divididos em duas categorias:

tipo primitivo: como Indefinido, Nulo, Booleano, Anestesiado ...

Ao é assimNão sei muito sobre JS.
Se
Suponha que o parâmetro da função tempo de js seja um array
function time(Array ){....................}

Siga a última frase desta função C#
Retorne objetos. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, novo objeto[] { "time(????)" }). ToString();

Quero passar um Array   
var mycars = novo Array();
mycars[0] = "a";
mycars[1] = "b";
mycars[2] = "c";

Se você só chama JS nessa implementação de código C#, não se importa com outros métodos de código. Isso está nesse código C#??? Como os parâmetros devem ser escritos?
Publicado em 18/02/2020 14:17:06 |
zncliving Postado em 2020-2-18 14:10
Ao: Isso mesmo, eu não sei muito sobre JS.
Se
Suponha que o parâmetro da função tempo de js seja um array

Bem, só posso te dar ideias, não ajudar a escrever código

Você ainda precisa pesquisar o código por conta própria
 Senhorio| Publicado em 18/02/2020 14:35:32 |
Xiao Zhazha Postado em 2020-2-18 14:17
Bem, só posso te dar ideias, não ajudar a escrever código

Você ainda precisa pesquisar o código por conta própria

Ok, estou procurando informações
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com