我习惯在这样的文档中获取超链接:
Dim html As String =
"var linksArray = new Array(); " &
"for (var i = 0; i < document.links.length; i++) {" &
"linksArray[i] = [String(document.links[i].innerHTML), String(document.links[i].innerText), String(document.links[i].href)];" &
"} " &
"return linksArray;"
Try
Dim linksArray As JSArray = _Browser.WebView.EvalScript(String.Format("(function(){{ {0} }})()", html))
For Each obj As Object In linksArray
Dim sInnerHTML As String = obj(0).ToString().Trim()
Dim sInnerText As String = obj(1).ToString().Trim()
Dim sHRef As String = obj(2).ToString().Trim()
Dim nItem As New clsURL
nItem.HRef = sHRef
nItem.InnerHTML = sInnerHTML
nItem.InnerText = sInnerText
nList.Add(nItem)
Next
但是,CefSharp没有JSArray。
有谁可以告诉我用CefSharp做到这一点的方法是什么?
谢谢!
答案 0 :(得分:2)
EvaluateScriptAsync
将返回List<object>
(在您的情况下,每个条目可能是另一个List<object
,因为您已经嵌套了数组)
我创建了Gist
作为示例,它位于C#
,您应该可以将其移植到VB.Net
(我无法帮助您)
https://gist.github.com/amaitland/9d354376960b0cd9305a
(我打算在FAQ
添加一个稍微更详细的例子,所以你的案例似乎是一个合理的候选人。)
作为旁注,当使用EvaluateScriptAsync
执行代码块时,我建议使用匿名闭包。