Torben
Torben

Reputation: 478

Error when calling Javascript function located in WPF WebBrowser Control from C# code

Based on this solution i tried to call a JavaScript function located in my WebBrowser - control. The .xaml looks like this

<Grid>
    <WebBrowser x:Name="browser"/>
</Grid>

But neither this code

public MainWindow()
{
   InitializeComponent();
   browser.NavigateToString("<html><script>function callMe() {alert('Hello');} document.myfunc = callMe;</script><body>Hello World</body></html>");
   dynamic doc = browser.Document;
   doc.myfunc();
}

Error

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: ''mshtml.HTMLDocumentClass' does not contain a definition for 'myfunc''

nor this Code

public MainWindow()
{
    InitializeComponent();
    browser.NavigateToString("<html><script>function callMe() {alert('Hallo');}</script><body>Hello World</body></html>");
    browser.InvokeScript("callMe");
}

Error

System.Runtime.InteropServices.COMException: 'Unknown name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))'

do work.

What am I missing?

Upvotes: 5

Views: 1015

Answers (1)

mm8
mm8

Reputation: 169150

Try this:

browser.NavigateToString("<html><script>function callMe() {alert('Hello');} document.myfunc = callMe;</script><body>Hello World</body></html>");
browser.LoadCompleted += (s,e) => browser.InvokeScript("callMe");

Upvotes: 3

Related Questions