gpt4 book ai didi

c# - 将委托(delegate)传递给 WPF WebBrowser.InvokeScript 方法

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:22 25 4
gpt4 key购买 nike

public void ProcessResult(string result)
{
this.MyTextBox.Text = result;
}

...

this.WebBrowser.InvokeScript("jsFunctionName", ProcessResult);

我需要实现这样的目标。 JavaScript 函数“jsFunctionName”是异步函数,需要一个捕获结果的回调。

但是,InvokeScript 方法的第二个参数接受对象数组。那么,如何将此 C# 方法/委托(delegate)传递给 InvokeScript 方法?

编辑:

即使我们可以将委托(delegate)传递给 WebBrowser 控件,控件中的脚本将如何调用 C# 委托(delegate)?

最佳答案

我建议您阅读这篇文章,了解有关使用 InvokeScript 实现双向通信的详细信息:http://msdn.microsoft.com/en-us/library/a0746166.aspx

此外,传递的对象不是回调而是参数。如果你想传递方法,我会选择将带有必要前缀的方法名称作为字符串传递给函数。

下面的简单代码显示了如何从 js 端组织调用(通过按钮单击,尽管它可能被理解为用作简单调用):

<button onclick=\"window.external.Test('called from script code')\>...</button>

如果从 js 调用任何方法有问题,您总是可以自由地实现采用字符串函数名称并调用必要函数的通用函数:

public void CallMethod(string methodName, params object[] parameters)
{
...
}

关于c# - 将委托(delegate)传递给 WPF WebBrowser.InvokeScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com