I'm working on a cool C# app, which uses JS a lot for our model layer. We would like to use the IE9 Chakra Javascript engine for speed improvements.
Questions:
- Can I use Chakra in C#, and interact with JS objects as COM objects? (to call functions on JS objects)
- Can I install Chakra separately from IE9? (some users do not have IE9 installed, so it would be easier if they did not have to install IE9, but just Chakra).
Thanks a lot in advance for you expertise.
[Update] Based on Cheeso's answer it seems you can use IE9's JS engine[/Update]. However I found that V8 JavaScript engine (Chrome's JS engine) mentions that you can use V8 engine in you C++ application. Follow V8 embedder's guide to find out more. I did not find any reference where they mentioned exposing V8 functionality through COM interface, so you might not be able to use it from C#.
Answer to Q#1
Yes, you can interact with Javascript logic running in Chakra from C# via COM.
in Particular, from a c# program, you can startup Chakra via IActiveScript, load some Javascript/ES5 code into it, then invoke methods defined in that Javascript code via a COM IDispatch pointer.
Related:
- Will the IE10 Chakra JScript engine available as stand alone accessible from C#?
- What is the ProgId or CLSID for IE9's Javascript engine (code-named "Chakra")
Answer to Q#2
As far as I know, NO, you cannot install Chakra without installing IE9. You can design your C# app, though, to gracefully degrade to use the existing JScript engine, for computers without Chakra.
来源:https://stackoverflow.com/questions/5429749/c-sharp-ie9-js-engine-chakra