Heim >Backend-Entwicklung >C++ >Wie kann ich JavaScript-Code in einer C#-Anwendung analysieren und ausführen?

Wie kann ich JavaScript-Code in einer C#-Anwendung analysieren und ausführen?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 20:01:12951Durchsuche

How Can I Parse and Execute JavaScript Code within a C# Application?

Um JS in C# zu analysieren und auszuführen, können Sie das bereitgestellte Code-Snippet verwenden. Es umschließt die Windows-Skript-Engines und unterstützt 32-Bit- und 64-Bit-Umgebungen. In Ihrem speziellen Fall müssen Sie je nach .JS-Code möglicherweise einige HTML-DOM-Elemente emulieren/implementieren (mithilfe der Funktion „Benannte Elemente“ mit der MyItem-Klasse). Genau das macht Internet Explorer.

Hier sind einige Beispiele dafür, was Sie damit machen können:

1) Auswertung direkter Ausdrücke:

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));

zeigt 1,66666666666667 an

2) Funktionsaufruf, optional Argumente:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
  ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}");
  Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

Hier wird 6 angezeigt.

3) Funktionsaufruf mit benannten Elementen und optionalen Argumenten:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
    ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x+My.Num}");
    MyItem item = new MyItem();
    item.Num = 4;
    engine.SetNamedItem("My", item);
    Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

[ComVisible(true)] // Script engines are COM components.
public class MyItem
{
    public int Num { get; set; }
}

Hier wird 10 angezeigt.

Bearbeiten: Ich habe die Möglichkeit hinzugefügt, eine CLSID anstelle eines Skriptsprachennamens zu verwenden, damit wir das können Verwenden Sie die neue und schnelle IE9-Javascript-Engine „Chakra“ wie folgt wieder:

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Code in einer C#-Anwendung analysieren und ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn