C#에서 JavaScript를 구문 분석하고 실행하는 방법
이 코드 예제에서는 32비트 및 64비트를 지원하도록 Windows 스크립트 엔진을 래핑합니다. -bit 환경.
특정 사례의 경우 .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 "chakra" 자바스크립트 엔진을 재사용할 수 있습니다. 이:
using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}")) { // continue with chakra now }
전체 소스는 다음과 같습니다.
(제공된 내용 참조) 코드)
사용법:
참고:
위 내용은 C# 애플리케이션 내에서 JavaScript 코드를 구문 분석하고 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!