【问题标题】:How to get the value of 'href' without id VB如何在没有 id VB 的情况下获取“href”的值
【发布时间】:2016-10-22 12:00:45
【问题描述】:

我知道这是一个愚蠢的问题,但我很难解决这个问题。我想在没有 id 的情况下获取 'href' 的值,但我不能。

这里是 HTML

<p class="CLASS">
    <a href="URL" target="TARGET">
        <img src="IMGURL" title="TITLE" border="BORDER">
    </a>
</p>

这是我正在使用的(不起作用):

For Each WPE As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a")
    If WPE.GetAttribute("target").Equals("TARGET") Then
        HREFVALUE = WPE.Getattribute("href")
        Exit For
    End If
Next

那么如何获取'href'的值呢?

【问题讨论】:

    标签: .net vb.net winforms webbrowser-control


    【解决方案1】:

    您的代码可以正常工作。但是您没有得到预期的结果,因为您可能在错误的地方执行了代码。代码应在文档完成后运行。一个知道文档已经完成的好地方是WebBrowser控件的DocumentCompleted事件:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.WebBrowser1.Navigate("d:\file.html")
    End Sub
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As _
        WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    
        Dim tag = Me.WebBrowser1.Document.GetElementsByTagName("a").Cast(Of HtmlElement) _
                    .Where(Function(a) a.GetAttribute("target") = "TARGET") _
                    .FirstOrDefault()
        Dim href = tag.GetAttribute("href")
    End Sub
    

    我在上面的代码中使用 linq 只是为了学习。您自己的代码也可以正常工作。

    【讨论】:

    • 感谢您的回答。虽然这在大多数情况下都有效,但有时它会多次重复它下面的代码,这会影响结果并触发一些代码意外运行。
    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    相关资源
    最近更新 更多