【发布时间】:2015-12-27 12:10:12
【问题描述】:
我正在尝试从 html 文档中读取所有 URL。
我正在使用以下代码:
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 JSObject = _Browser.WebView.EvalScript(String.Format("(function(){{ {0} }})()", html))
If linksArray Is Nothing Then
Stop 'this line is not reached, so it should be fine so far
End If
'the following line throws an error
Dim urls As JSArray = linksArray.ToArray()
For Each link As JSObject In urls
Dim sInnerHTML As String = link(0).ToString().Trim()
Dim sInnerText As String = link(1).ToString().Trim()
Dim sHRef As String = link(2).ToString().Trim()
If sHRef <> "undefined" Then
Dim nItem As New clsURL
nItem.HRef = sHRef
nItem.InnerHTML = sInnerHTML
nItem.InnerText = sInnerText
nList.Add(nItem)
End If
Next
Catch ex As Exception
Debug.Print(ex.Message.ToString)
Stop
End Try
但是,行
Dim urls As JSArray = linksArray.ToArray()
抛出错误“对象引用未设置为对象实例”。
有人知道如何正确地做吗?
谢谢!
【问题讨论】:
-
您在监控“linksArray”时看到了什么?
-
@etalon11 我在帖子中添加了屏幕截图。
-
你能监控一个项目吗? “urls”也没有声明为数组。你不能将普通的Array转换为JSArray,或者?
-
对不起,你能详细解释一下你需要看什么吗?不,很遗憾,我不能使用普通数组。