WebView2如何实现运行Javascript功能?
WebView2 how to run Javascript function?
在我的 WebView2 中,我用 js 文件加载我的本地 html,一切正常,但是我如何 运行 从我的 WinForm 中的 WebView 脚本?
直到现在我在 VB 中使用 webBrowser,我是这样做的:
WebBrowser1.Document.InvokeScript("addProducts", New String() {"{ ""desc"": ""test"", ""qta"": 1, ""prezzo"": 2}"})
现在我正在尝试类似的东西:
private async void prodotto_Click(object sender, EventArgs e)
{
await webView21.ExecuteScriptAsync("addProducts(\"{ \"desc\": \"test\", \"qta\": 1, \"prezzo\": 2})\"");
}
我什至试过了:
private void prodotto_Click(object sender, EventArgs e)
{
AddProduct();
}
async void AddProduct()
{
await webView21.CoreWebView2.ExecuteScriptAsync("addProducts(\"{ \"desc\": \"test\", \"qta\": 1, \"prezzo\": 2})\"");
}
但是脚本还没到...
您的字符串中有拼写错误,请尝试:
"addProducts({\"desc\":\"test\",\"qta\":1,\"prezzo\":2})"
数据需要编码为JSON才能嵌入为字符串,最好使用SerializeObject
将对象转换为 JSON,例如:
dynamic obj = new System.Dynamic.ExpandoObject();
obj.desc = "test";
obj.qta = 1;
obj.prezzo = 2;
string data = JsonConvert.SerializeObject(obj);
webView21.ExecuteScriptAsync($"addProducts({data})");
在我的 WebView2 中,我用 js 文件加载我的本地 html,一切正常,但是我如何 运行 从我的 WinForm 中的 WebView 脚本?
直到现在我在 VB 中使用 webBrowser,我是这样做的:
WebBrowser1.Document.InvokeScript("addProducts", New String() {"{ ""desc"": ""test"", ""qta"": 1, ""prezzo"": 2}"})
现在我正在尝试类似的东西:
private async void prodotto_Click(object sender, EventArgs e)
{
await webView21.ExecuteScriptAsync("addProducts(\"{ \"desc\": \"test\", \"qta\": 1, \"prezzo\": 2})\"");
}
我什至试过了:
private void prodotto_Click(object sender, EventArgs e)
{
AddProduct();
}
async void AddProduct()
{
await webView21.CoreWebView2.ExecuteScriptAsync("addProducts(\"{ \"desc\": \"test\", \"qta\": 1, \"prezzo\": 2})\"");
}
但是脚本还没到...
您的字符串中有拼写错误,请尝试:
"addProducts({\"desc\":\"test\",\"qta\":1,\"prezzo\":2})"
数据需要编码为JSON才能嵌入为字符串,最好使用SerializeObject
将对象转换为 JSON,例如:
dynamic obj = new System.Dynamic.ExpandoObject();
obj.desc = "test";
obj.qta = 1;
obj.prezzo = 2;
string data = JsonConvert.SerializeObject(obj);
webView21.ExecuteScriptAsync($"addProducts({data})");