PatrickR
PatrickR

Reputation: 80

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

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?

Upvotes: 5

Views: 4048

Answers (2)

Ray Burns
Ray Burns

Reputation: 62919

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.

Upvotes: 8

Lukasz Madon
Lukasz Madon

Reputation: 15004

Only the WebBrowser in WPF can run javascript

 myWebBrowser.ObjectForScripting =  new HtmlBridge();

Upvotes: 0

Related Questions