ホームページ >バックエンド開発 >C++ >C# アプリケーション内で JavaScript コードを解析して実行するにはどうすればよいですか?

C# アプリケーション内で JavaScript コードを解析して実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 20:01:12955ブラウズ

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

C# で JS を解析して実行するには、提供されているコード スニペットを使用できます。 Windows スクリプト エンジンをラップし、32 ビットおよび 64 ビット環境をサポートします。特定のケースでは、.JS コードに応じて、一部の HTML DOM 要素をエミュレート/実装する必要がある場合があります (MyItem クラスで「名前付きアイテム」機能を使用)。これはまさに Internet Explorer の機能です。

これでできることの例をいくつか示します:

1) 直接式の評価:

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

は 1.66666666666667 を表示します。

2) 関数呼び出し (オプションあり)引数:

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

これは 6 を表示します。

3) 名前付き項目とオプションの引数を使用した関数呼び出し:

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; }
}

これは 10 を表示します。

編集: スクリプト言語の代わりに CLSID を使用する可能性を追加しました名前を付けて、次のように新しい高速 IE9「チャクラ」JavaScript エンジンを再利用できるようにします。

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

以上がC# アプリケーション内で JavaScript コードを解析して実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。