Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 17689|Antwort: 4

[Neue Ausgabe] C# winform call js Problem

[Link kopieren]
Veröffentlicht am 18.02.2020 10:30:34 | | |
Ein C#-Aufruf-zu-JS-Schema, das im Internet zu finden ist  
   öffentliche Zeichenkette GetTimeByJs()
        {
            Type obj = Type.GetTypeFromProgID ("ScriptControl");
            wenn (obj == null) null zurückgibt;
            object ScriptControl = Activator.CreateInstance(obj);
            obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" });
            String js = "Function time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sum }";
            obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js });
            Return Obj. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString();
        }   


Der Test ist in Ordnung.
Zeit(1, 2, '1 + 2'), wobei die übermittelten Parameter (Nummer 1, Zahl 2, String 1+2) sind.
Aber es stellt sich eine Frage, neues Objekt[] { "time(1, 2, '1 + 2')" }, wenn das Argument der JS-Methode vom Typ byte[ ist], wie sollte es beim Aufruf geschrieben werden?





Vorhergehend:SQLyog-12.0.9-0 mit Registrierungscode
Nächster:Ressourcen-Upload-Review
Veröffentlicht am 18.02.2020 10:56:17 |
JavaScript-Datentypen lassen sich in zwei Kategorien einteilen:

Primitiver Typ: z. B. Undefiniert, Null, Boolesch, Zahl, String
Referenztypwert, also Objekttyp: Objekttyp, wie Objekt, Array, Funktion, Datum



Die Argumente der JS-Methoden haben kein byte[], alles ist Objekt
Nutzen Sie Jurassic, um js-Funktionen unter .net auszuführen
https://www.itsvse.com/thread-4303-1-1.html
(Quelle: Architect_Programmer)


 Vermieter| Veröffentlicht am 18.02.2020 14:10:18 |
Xiao Zhazha Veröffentlicht am 18.2.2020, 10:56 Uhr
JavaScript-Datentypen lassen sich in zwei Kategorien einteilen:

Primitiver Typ: wie Undefiniert, Null, Boolesch, Numb ...

Ao ist soIch weiß nicht viel über JS.
Wenn
Angenommen, der Zeitfunktionsparameter von js ist ein Array
function time(Array ){....................}

Folgen Sie dem letzten Satz dieser C#-Funktion
Return Obj. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(????)" }). ToString();

Ich möchte ein Array passieren   
var mycars = neues Array();
mycars[0] = "a";
mycars[1] = "b";
mycars[2] = "c";

Wenn man bei dieser C#-Code-Implementierung nur JS aufruft, ist einem die anderen Codemethoden egal. Das ist in diesem C#-Code??? Wie sollten die Parameter geschrieben werden?
Veröffentlicht am 18.02.2020 14:17:06 |
zncliving Veröffentlicht am 18.02.2020, 14:10
Ao: Genau, ich weiß nicht viel über JS.
Wenn
Angenommen, der Zeitfunktionsparameter von js ist ein Array

Nun, ich kann dir nur Ideen geben, dir nicht beim Code helfen

Du musst den Code trotzdem selbst recherchieren
 Vermieter| Veröffentlicht am 18.02.2020 14:35:32 |
Xiao Zhazha Veröffentlicht am 18.2.2020, 14:17 Uhr
Nun, ich kann dir nur Ideen geben, dir nicht beim Code helfen

Du musst den Code trotzdem selbst recherchieren

Okay, ich suche Informationen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com