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?
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?
Share Improve this question asked Aug 13, 2010 at 2:00 PatrickRPatrickR 801 silver badge8 bronze badges2 Answers
Reset to default 8You 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:
- Add a reference to the
Microsoft.JScript
assembly - Use
new JScriptCodeProvider().CreateCompiler().CompileAssemblyFromSource(...).CompiledAssembly
to pile your JavaScript to an assembly - Invoke code in the piled 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.
Only the WebBrowser in WPF can run javascript
myWebBrowser.ObjectForScripting = new HtmlBridge();