要在 C# 中解析和執行 JS,您可以使用提供的程式碼片段。它封裝了 Windows 腳本引擎並支援 32 位元和 64 位元環境。在您的特定情況下,您可能需要根據 .JS 程式碼模擬/實作一些 HTML DOM 元素(使用「命名項目」功能和 MyItem 類別)。這正是 Internet Explorer 所做的。
以下是一些您可以使用它執行的範例:
1) 直接表達式求值:
Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));
將顯示1.66666666666667
)函數調用,可選參數:
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「chakra」 javascript 引擎,如下所示:
using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}")) { // continue with chakra now }
以上是如何在 C# 應用程式中解析和執行 JavaScript 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!