从C#代码调用位于WPF WebBrowser Control中的Javascript函数时出错

Tor*_*ben 5 javascript c# wpf

基于解决方案,我试图调用位于我的WebBrowser控件中的JavaScript函数.在.xaml这个样子的

<Grid>
    <WebBrowser x:Name="browser"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

但这个代码都没有

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();
}
Run Code Online (Sandbox Code Playgroud)

错误

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:''mshtml.HTMLDocumentClass'不包含'myfunc''的定义

也不是本规范

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

错误

System.Runtime.InteropServices.COMException:'未知名称.(HRESULT异常:0x80020006(DISP_E_UNKNOWNNAME))'

做工作.

我错过了什么?

mm8*_*mm8 3

尝试这个:

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