Invoking JavaScript function from WinForms
Submitted by emond on Saturday, September 24, 2011 - 00:43.
Language
I've been working on application that needs to load page and display it in WebBrowser control. Requirement was to allow interaction between WinForms application and web page.
Here I will show a sample application where JavaScript function is called from WinForms application.
For this Blog I will be using Google Web elements , Google Web Elements allow you to easily add your favorite Google products to your website.
http://www.google.com/webelements/#!/custom-search
Process can be described by following steps:
Create Windows Forms application
Drop WebBrowser control into Form
Create Html with JavaScript function you want to call
Calling JavaScript function from WinForms application isn't so difficult.
.NET WebBrowser control has property Document which gets an HtmlDocument representing the Web page currently displayed in the WebBrowser control.
Well this javascript part is not well written ,maybe my Web God-Like Buddy (Rustan) can clean this mess..lol
anyway here's the script
JAVASCRIPT
So how can you call JavaScript functions in your WebBrowser control? Call the InvokeScript method on the HtmlDocument.
.NET CODE (winforms)
Conclusions:
With the ability to call JavaScript from .NET App you can now embed and extend web applications into native applications with ease. A native application gives you more control over the environment and access to computer resources that you cannot access from a web page. You can Mashup web applications with computer hardware or software in new and interesting ways.
For the complete sample please download the demo project
For questions just Contact me @ the Addresses below:
mobile : +639399393702
Follow me on twitter:
http://twitter.com/#!/emond07
- <script type="text/javascript">
- google.load("elements", "1", {packages: "keyboard"});
- var kbd;
- function onLoad() {
- var content = document.getElementById('content');
- // Create the HTML for out text area
- content.innerHTML = '<div>' +
- 'Demo of Invoking JavaScript using .NET' +
- '.</div>' +
- '<textarea id="t1" cols="47" rows="7"></textarea>';
- kbd = new google.elements.keyboard.Keyboard(
- [google.elements.keyboard.LayoutCode.ENGLISH],
- ['t1']);
- }
- function ChangeLayout() {
- var LayOut=document.getElementById('txtLang').value;
- kbd.setLayout(LayOut);
- }
- function toggleVisible() {
- if (kbd.isVisible()) {
- kbd.setVisible(false);
- } else {
- kbd.setVisible(true);
- }
- }
- google.setOnLoadCallback(onLoad);
- </script>
- Sub SHOW_HIDE_VIR_KEYBOARD()
- With Me.WBrowser
- .Document.InvokeScript("toggleVisible", New Object() {""}) 'call the javascript from the .htm files
- End With
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdShow.Click
- SHOW_HIDE_VIR_KEYBOARD()
- End Sub
- Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
- With Me.WBrowser
- .Document.GetElementById("txtLang").InnerText = Trim(Me.ComboBox1.Text) 'parse data from winforms to Htm files
- .Document.InvokeScript("ChangeLayout", New Object() {""}) 'call the javascript from the .htm files
- End With
- End Sub
http://www.emondsoft-solutions.com/
Facebook Fan Page
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
Add new comment
- 264 views