javascript - 从 C# 代码调用位于 WPF WebBrowser 控件中的 Javascript 函数时出错

标签 javascript c# wpf

基于 this解决方案 我尝试调用位于我的 WebBrowser 控件中的 JavaScript 函数。 .xaml 看起来像这样

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

但是这段代码都没有

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

错误

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

也不是本准则

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

错误

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

工作。

我错过了什么?

最佳答案

试试这个:

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

关于javascript - 从 C# 代码调用位于 WPF WebBrowser 控件中的 Javascript 函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43633746/

相关文章:

c# - 添加拖放行为

c# - 如何绑定(bind)到 XAML 中实例化类的属性

c# - IE 9 BHO 插件。加载外部 JS 文件时出现错误 SCRIPT1014

javascript - 有没有办法在 android 的 "web view"中应用 css 或 java 脚本?

javascript es6类原型(prototype)链修改

c# - 为什么我不能对 ThreadStart 使用/强制执行 Action?

c# - 使用代码隐藏堆叠列系列在 WPF 图表上旋转独立轴标签

javascript - RxJS 6 : Subscribe only onComplete

c# - 在 >0 和 >=1 之间的 C# 中哪个更快更好?

c# - 使用网格向窗口添加菜单时,我是给菜单单独一行还是使用某种面板?