首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSObject到JSArray

JSObject到JSArray
EN

Stack Overflow用户
提问于 2015-12-27 12:10:12
回答 1查看 188关注 0票数 0

我试图从html文档中读取所有URL。

我使用以下代码:

代码语言:javascript
复制
    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

然而,线

代码语言:javascript
复制
 Dim urls As JSArray = linksArray.ToArray()

引发错误“对象引用未设置为对象实例”。

有人知道怎么做正确吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 14:48:55

明白了:

代码语言:javascript
复制
        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()

        Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34480249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档