javascript - 在WebView UWP中通过ID获取dom元素

标签 javascript c# xaml webview uwp

我打算从网站获取dom元素的内容,我无法使用

var html = await client.GetAsync("http://example.com/test.html");

作为JS执行后填充特定的dom元素 我可以使用 webview 来托管内容,但这并不能解决问题 我无法使用HtmlDocument.GetElementById Method (String)要么因为它位于 System.Windows.Forms 命名空间下,但通用 Windows 平台不支持该命名空间! 另一种选择是 InvokeAsync

await webView5.InvokeScriptAsync("doSomething", null);  

XAML WebView control sample 的场景 5 所示 但这只是触发事件,并不能帮助获取 dom 元素(甚至在 JS 执行完成后获取源代码)。 //该应用程序是 C# UWP,而不是 Winjs

最佳答案

您可以使用HtmlAgilityPack库来查询您下载的 DOM。请参阅example here或者搜索更多,有很多。

或者,您可以运行 javascript,它会执行您需要的操作并返回包含您的 ID 的字符串。如您所见,InvokeScriptAsync 返回 String,其中可以包含您的 javascript 返回的任何内容。例如,this is how使用 javascript 获取 DOM:

var result = await this.webView.InvokeScriptAsync("eval", new[] { "document.documentElement.outerHTML;" });

关于javascript - 在WebView UWP中通过ID获取dom元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45807976/

相关文章:

c# - DataGrid 具有 WPF 中第 n 级单元格的 DataGrid

wpf - 覆盖 generic.xaml 中定义的样式

.net - 如何在 WPF 中的 TextBlock 上应用 CharacterCasing?

javascript - 仅使用 javascript 在 div 中加载另一个 html 文件时更改 url

javascript - 平均应用程序 : Can't find theme in Angular material

javascript - 如何优化这个 JSP/JavaScript 代码?

c# - 如何在 C# 控制台应用程序中输出希腊符号?

C# 字符串 - 简单语法问题

javascript - JavaScript中这些正则表达式的含义是什么?

c# - FlowDocument TextElements 只允许单亲