Using .NET's Webbrowser control for Windows Forms , it is pretty easy to access the DOM. Consider this scenario
this.webBrowser1.Navigate
(Path.Combine(Application.StartupPath,"TestPage.html"));
Now, Assume that you've a test javascript method in your html page, which accepts a string param. So, once loading is complete, you may
webBrowser1.Document.InvokeScript("test", new object[] { "hi" });
Now, I'm trying running this in Mono. At Runtime, Mono should be using Mono's web browser control - http://www.mono-project.com/WebBrowser. I am finding some very weird behavior (see the update)
Question is, how to access the HTML DOM, probably to invoke a script, via Mono's webbrowser control?
Update
Just noted that webBrowser1.Document is null only when I'm connected to the network. Otherwise, if I'm offline, the script is actually getting invoked, but then the Mono runtime crashes after that, with this error
Stacktrace:
at (wrapper managed-to-native) Mono.Mozilla.Base.gluezilla_evalScript (intptr,string) <0x00004>
at (wrapper managed-to-native) Mono.Mozilla.Base.gluezilla_evalScript (intptr,string) <0x00004>
at Mono.Mozilla.Base.EvalScript (Mono.WebBrowser.IWebBrowser,string) <IL 0x0001a, 0x00038>
at Mono.Mozilla.DOM.Document.InvokeScript (string) <IL 0x00007, 0x00017>
at System.Windows.Forms.HtmlDocument.InvokeScript (string,object[]) [0x00054] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\HtmlDocument.cs:143
at WindowsFormsHost.Form1.ShowMsg (string) <IL 0x0002b, 0x000ac>
at WindowsFormsHost.Form1.testToolStripMenuItem_Click (object,System.EventArgs) <IL 0x00008, 0x0001c>
at System.Windows.Forms.ToolStripItem.OnClick (System.EventArgs) [0x0001c] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripItem.cs:1002
at System.Windows.Forms.ToolStripMenuItem.OnClick (System.EventArgs) [0x000a5] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripMenuItem.cs:267
at System.Windows.Forms.ToolStripMenuItem.HandleClick (System.EventArgs) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripMenuItem.cs:539
at System.Windows.Forms.ToolStripItem.FireEvent (System.EventArgs,System.Windows.Forms.ToolStripItemEventType) [0x00042] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripItem.cs:1776
at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem.FireEvent (System.EventArgs,System.Windows.Forms.ToolStripItemEventType) <IL 0x00034, 0x00061>
at System.Windows.Forms.ToolStrip.OnMouseUp (System.Windows.Forms.MouseEventArgs) [0x00047] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStrip.cs:960
at System.Windows.Forms.ToolStripDropDown.OnMouseUp (System.Windows.Forms.MouseEventArgs) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripDropDown.cs:630
at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message&) [0x0007e] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5592
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message&) [0x0017b] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:5329
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ScrollableControl.cs:807
at System.Windows.Forms.ToolStrip.WndProc (System.Windows.Forms.Message&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStrip.cs:1213
at System.Windows.Forms.ToolStripDropDown.WndProc (System.Windows.Forms.Message&) [0x0001a] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\ToolStripDropDown.cs:722
at System.Windows.Forms.Control/ControlWindowTarget.OnMessage (System.Windows.Forms.Message&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:234
at System.Windows.Forms.Control/ControlNativeWindow.WndProc (System.Windows.Forms.Message&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Control.cs:215
at System.Windows.Forms.NativeWindow.WndProc (intptr,System.Windows.Forms.Msg,intptr,intptr) [0x00085] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\NativeWindow.cs:242
at System.Windows.Forms.XplatUIWin32.InternalWndProc (intptr,System.Windows.Forms.Msg,intptr,intptr) [0x00031] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:1946
at (wrapper native-to-managed) System.Windows.Forms.XplatUIWin32.InternalWndProc (intptr,System.Windows.Forms.Msg,intptr,intptr) <IL 0x00021, 0x00073>
at (wrapper managed-to-native) System.Windows.Forms.XplatUIWin32.Win32DispatchMessage (System.Windows.Forms.MSG&) <0x00004>
at (wrapper managed-to-native) System.Windows.Forms.XplatUIWin32.Win32DispatchMessage (System.Windows.Forms.MSG&) <0x00004>
at System.Windows.Forms.XplatUIWin32.DispatchMessage (System.Windows.Forms.MSG&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUIWin32.cs:2146
at System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG&) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\XplatUI.cs:605
at System.Windows.Forms.Application.RunLoop (bool,System.Windows.Forms.ApplicationContext) [0x0036a] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:984
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext) [0x00014] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:763
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.7\mcs\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:742
at WindowsFormsHost.Program.Main () <IL 0x00013, 0x00044>
at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <IL 0x0001b, 0x0003a>
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.