gpt4 book ai didi

c# - 如何使用 Awesomium 将 JavaScript 结果返回给 C#?

转载 作者:太空狗 更新时间:2023-10-30 00:56:19 26 4
gpt4 key购买 nike

我创建了一个新的 WPF 项目,并添加了一个 Awesomium 1.6.3 WebControl

然后,我将此代码添加到 MainWindow.xaml.cs:

    private void webControl1_Loaded(object sender, RoutedEventArgs e)
{
webControl1.LoadURL("https://www.google.com/");
}

private void webControl1_DomReady(object sender, EventArgs e)
{
var wc = new WebClient();
webControl1.ExecuteJavascript(jQuery);
webControl1.ExecuteJavascript(@"var __jq = jQuery.noConflict();");
webControl1.ExecuteJavascript(@"alert(__jq);");
using(var result = webControl1.ExecuteJavascriptWithResult(@"(function() { return 1; })();"))
{
MessageBox.Show(result.ToString());
}
//using (var result = webControl1.ExecuteJavascriptWithResult(@"(function() { return __jq('a'); })();"))
//{
// MessageBox.Show(result.ToString());
//}
}

它会提示“1”,然后提示“函数 (a,b){...}”,这是乱序的,现在我想起来了,但不管怎样,那是另一个问题。

一旦我取消注释底部代码,它就会提示“1”然后挂起。为什么?我怎样才能获得有关页面上链接的一些信息?或者可靠地将一些信息传回 C#?或者使用 C# 访问 DOM?

编辑:jQuery 只是一个包含 jQuery 1.7 代码的字符串。

最佳答案

关于为什么下面一行挂起:

webControl1.ExecuteJavascriptWithResult(@"(function() { return __jq('a'); })();")

这是因为 ExecuteJavascriptWithResult 只能返回基本的 Javascript 类型(字符串、数字、 bool 值、数组或用户创建的对象)。您尝试返回无法映射到其中一种类型的 native DOM 元素对象,因此请求失败。

关于c# - 如何使用 Awesomium 将 JavaScript 结果返回给 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089912/

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