Reputation: 2187
With System.Windows.Forms.WebBrowser control, we can use the following code to handle DOM event:
HtmlElement centerButton = webBrowser.Document.GetElementById("centerButton");
centerButton.Click += this.WelcomeHandler_Click;
But while using WebKit.NET, WebKit.Dom.Element doesn't have a ".Click" event. How to handle DOM events like "WebBrowser" control?
Upvotes: 0
Views: 1792
Reputation: 2033
You can use follow code to handle element event:
Create element
var doc = webKitBrowser1.Document;
doc.TextContent = "<h1>text</h1>";
var body = doc.GetElementsByTagName("body")[0];
var lnkBtn = webKitBrowser1.Document.CreateElement("a");
lnkBtn.SetAttribute("href", "app:dosome,by link");
lnkBtn.TextContent = "Link:Click me!";
var inpBtn = webKitBrowser1.Document.CreateElement("input");
inpBtn.SetAttribute("type", "button");
inpBtn.SetAttribute("onclick", "window.location.href='app:dosome,by button';");
inpBtn.SetAttribute("value", "Button:Click me!");
body.AppendChild(lnkBtn);
body.AppendChild(inpBtn);
Handle event
private void webKitBrowser1_Navigating(object sender
, WebBrowserNavigatingEventArgs e)
{
if (e.Url.Scheme == "app")
{
e.Cancel = true;
MessageBox.Show(e.Url.ToString());
}
}
So, when you need to handle some event, just to Navigate to a custom protocol and handle it!
The code look like ugly but it's work! lol
Upvotes: 1
Reputation: 2187
As far as now, unfortunately, WebKit.NET hasn't developt this feature yet.
Upvotes: 0