Controllare i link all´interno di una pagina WEB

Da Gambas-it.org - Wikipedia.

E' possibile controllare i vari eventuali collegamenti (link) presenti in una pagina WEB, e visualizzarli chiari e distinti.

Si procederà, quindi, attivando il componente gb.qt4.webkit, ed utilizzando quindi l'oggetto WebView, con il quale si provvederà a caricare il codice della pagina WEB per la successiva verifica. Conseguentemente si aggiungeranno in fondo alla pagina carica le seguenti righe di codice JavaScript adatte all'uopo |1| |2|:

<script>
 if(document.getElementsByTagName) {
 document.writeln(">>><br>")
 for(i=0; i < document.getElementsByTagName("A").length; i++)
 document.writeln(document.getElementsByTagName("A")[i]+"<br>");
}
</script>

Un'integrazione del suddetto codice JavaScript con Gambas per ottenere il risultato finale con un applicativo può, ad esempio, essere il seguente:

Private js As String


Public Sub Form_Open()

 js = "\n\n<SCRIPT>" &
 "if(document.getElementsByTagName) {\n" &
 "document.writeln(\">>><BR>\")\n" &
 "for(i=0; i < document.getElementsByTagName(\"A\").length; i++)\n" &
 "document.writeln(document.getElementsByTagName(\"A\")[i]+\"<BR>\");}\n" &
 "</script>"
 
  WebView1.Url = "http://www.indirizzo_pagina_web.xx"

End


Public Sub Button1_Click()

  Dim s As String
  Dim j As Integer

    j = RInStr(WebView1.HTML, "</html>", 1, gb.IgnoreCase)

    s = Left(WebView1.HTML, j - 1) & js & Mid(WebView1.HTML, j + 7, Len(WebView1.HTML))

    File.Save("/tmp/s.html", s)
 
    WebView1.Url = "/tmp/s.html"

End


Note

[1] Le righe di codice JavaScript sono state suggerite dall'utente pastrano del forum Gambas-it.

[2] Un'altra modalità, ma più spicciola e senza codice JavaScript o HTML, può essere la seguente:

Public Sub Form_Open()  
 
  WebView1.Url = "http://www.indirizzo_pagina_web.xx"  
 
End  
 
 
Public Sub Button1_Click()  
 
 Dim ss As String[]  
 Dim s As String  
 
  ss = Split(Lower(WebView1.HTML), " ", "", True)
 
  For Each s In ss  
 
    If s Like "href=\"*" Then  
      s = Replace(s, "href=", "")  
      Print = Left(s, RInStr(s, "\""))  
    Endif  
  
  Next 
 
End