Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I invoke javascript directly in WPF without using the browser object

Tags:

javascript

c#

wpf

I would like to be able to make an application that uses open layers directly on my WPF application. I found that I can create a browser object and have that invoke JavaScript, but I don't need a full browser. Is there some scripting object that I can use and bypass the browser object all together?

like image 855
PatrickR Avatar asked Aug 13 '10 02:08

PatrickR


1 Answers

You don't need a web browser or the WebBrowser control to use JavaScript within NET Framework. NET Framework has a built-in JavaScript implementation that implements a superset of JavaScript / ECMAScript, as described here and here.

To use NET Framework's built in JavaScript implementation:

  1. Add a reference to the Microsoft.JScript assembly
  2. Use new JScriptCodeProvider().CreateCompiler().CompileAssemblyFromSource(...).CompiledAssembly to compile your JavaScript to an assembly
  3. Invoke code in the compiled assembly as usual (GetType/GetMethod/Invoke)

Note that if your JavaScript code is designed to manipulate a DOM or use other features of a web browser, you can still use the NET Framework's version of JavaScript but you will have to provide the expected objects yourself.

like image 162
Ray Burns Avatar answered Nov 20 '22 01:11

Ray Burns