C# 通过ChromiumWebBrowser 获取js函数的返回值
时间: 2024-02-13 14:00:26 浏览: 35
可以通过以下步骤获取 ChromiumWebBrowser 中的 JavaScript 函数的返回值:
1. 使用 EvaluateScriptAsync 方法执行 JavaScript 代码,该方法返回一个 Task<object> 对象,表示 JavaScript 代码的返回值。
2. 在 Task<object> 对象上调用 Result 属性,以获取 JavaScript 代码的返回值。
例如:
```csharp
using CefSharp;
using System.Threading.Tasks;
// ...
ChromiumWebBrowser browser = new ChromiumWebBrowser();
// 执行 JavaScript 代码
Task<object> task = browser.EvaluateScriptAsync("myFunction()");
task.Wait();
if (task.Result != null)
{
// 获取 JavaScript 代码的返回值
string result = task.Result.ToString();
}
```
其中,`myFunction()` 是你要执行的 JavaScript 函数名,`result` 是 JavaScript 函数的返回值。
相关问题
C# 通过ChromiumWebBrowser 和js交互
好的,您可以通过以下步骤实现C# 和 JavaScript 之间的交互:
1. 在 C# 项目中添加 ChromiumWebBrowser 控件,可以通过 NuGet 包管理器搜索和安装 CefSharp。
2. 在 C# 代码中,可以通过 ChromiumWebBrowser 控件的 ExecuteScriptAsync 方法执行 JavaScript 代码,例如:
```csharp
browser.ExecuteScriptAsync("alert('Hello, world!');");
```
3. 在 JavaScript 中,可以通过 window.external 对象调用 C# 中的方法,例如:
```javascript
window.external.MyMethod("Hello, world!");
```
其中,MyMethod 是 C# 中的一个方法,可以通过以下方式注册到 JavaScript 中:
```csharp
browser.RegisterJsObject("external", new External());
```
其中,External 是一个 C# 类,可以定义 MyMethod 方法,例如:
```csharp
public class External {
public void MyMethod(string message) {
MessageBox.Show(message);
}
}
```
这样,当 JavaScript 调用 window.external.MyMethod 方法时,就会弹出一个对话框,显示传递的参数。
希望这些信息能够对您有所帮助!
c#怎么获取 try中的返回值
在 C# 中,如果在 try 块中有返回值,可以使用 finally 块来获取返回值。在 finally 块中,可以使用一个变量来存储返回值,并在最后返回该变量。
以下是一个示例代码:
```csharp
public static int GetValue()
{
int result = 0;
try
{
// some code that may throw an exception and return a value
result = 42;
}
finally
{
// get the value from the try block
return result;
}
}
```
在上面的代码中,我们在 try 块中设置了 result 的值,并在 finally 块中返回该值。如果 try 块中发生异常,finally 块会捕获并返回 result 的默认值 0。