2017-04-26 11 views
5

Na podstawie rozwiązania this próbowałem wywołać funkcję JavaScript znajdującą się w moim sterowniku WebBrowser. .xaml wygląda toBłąd podczas wywoływania funkcji JavaScript znajdującej się w kontrolerze WPF WebBrowser z kodu C#

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

ale ani tego kodu

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(); 
} 

Błąd

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: '' mshtml.HTMLDocumentClass' nie zawierają definicji dla 'myfunc' '

ani Kodeks

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

Błąd

System.Runtime.InteropServices.COMException: „Nieznana nazwa. (Wyjątek: od HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME)) '

do pracy.

Czego mi brakuje?

Dzięki za pomoc.

Odpowiedz

1

Spróbuj tego:

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

Dzięki, że to zrobił! – Torben

Powiązane problemy