Note: Advice in this article will only work for DotNetBrowser 1.
See the corresponding example for DotNetBrowser 2 here.
C#
using DotNetBrowser; using DotNetBrowser.Events; using DotNetBrowser.WinForms; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace JavaScriptCSBridgeSample { public partial class Form1 : Form { private Browser browser; public Form1() { InitializeComponent(); browser = BrowserFactory.Create(); browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e) { if (e.IsMainFrame) { JSValue value = browser.ExecuteJavaScriptAndReturnValue("window"); value.AsObject().SetProperty("Account", new Account()); } }; browser.LoadHTML(@"<!DOCTYPE html> <html> <head> <script type='text/javascript'> function sendFormData() { var firstNameValue = myForm.elements['firstName'].value; var lastNameValue = myForm.elements['lastName'].value; // Invoke the 'save' method of the 'Account' Java object. Account.Save(firstNameValue, lastNameValue); } </script> </head> <body> <form name='myForm'> First name: <input type='text' name='firstName'/> <br/> Last name: <input type='text' name='lastName'/> <br/> <input type='button' value='Save' onclick='sendFormData();'/> </form> </body> </html>"); WinFormsBrowserViewbrowserView = new WinFormsBrowserView(browser) { Dock = DockStyle.Fill }; this.Controls.Add(browserView); } /** * c# class used for binding .NET to JavaScript must be public. */ public class Account { public void Save(String firstName, String lastName) { Console.Out.WriteLine("firstName = " + firstName); Console.Out.WriteLine("lastName = " + lastName); } } } }
VB.NET
Imports DotNetBrowser Imports DotNetBrowser.Events Imports DotNetBrowser.WinForms Public Class Form1 Private Dim browser As Browser Sub New() InitializeComponent() browser = BrowserFactory.Create() AddHandler browser.FinishLoadingFrameEvent, sub(sender As Object, e As FinishLoadingEventArgs) If e.IsMainFrame Then Dim value As JSValue = browser.ExecuteJavaScriptAndReturnValue("window") value.AsObject().SetProperty("Account", New Account()) End If End sub browser.LoadHTML("<!DOCTYPE html> <html> <head> <script type='text/javascript'> function sendFormData() { var firstNameValue = myForm.elements['firstName'].value; var lastNameValue = myForm.elements['lastName'].value; // Invoke the 'save' method of the 'Account' Java object. Account.Save(firstNameValue, lastNameValue); } </script> </head> <body> <form name='myForm'> First name: <input type='text' name='firstName'/> <br/> Last name: <input type='text' name='lastName'/> <br/> <input type='button' value='Save' onclick='sendFormData();'/> </form> </body> </html>") Dim browserView As WinFormsBrowserView = New WinFormsBrowserView(browser) With browserView .Dock = DockStyle.Fill End With Controls.Add(browserView) End Sub Public Class Account Public Sub Save(firstName As String, lastName As String) Console.Out.WriteLine("firstName = " + firstName) Console.Out.WriteLine("lastName = " + lastName) End Sub End Class End Class