vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Preisser
Datum: 10.08.12 13:12

Hallo,

hier ein Beispiel, um auch Textfelder von anderen Webseiten auf Fokusänderungen zu überwachen:
Public Class Form1
    ' Eine Liste aus Input-Typen, die nicht auf Fokusänderungen überwacht 
    ' werden sollen
    Private Shared ReadOnly ignoredInputTypes As String() = {"hidden", "color", _
      "checkbox", "radio", "file", "submit", "image", "reset", "button"}
    Shared Sub New()
        Array.Sort(ignoredInputTypes)
    End Sub
 
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.vbarchiv.net/forum/search.php?f=")
 
    End Sub
 
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As _
      WebBrowserDocumentCompletedEventArgs) Handles _
      WebBrowser1.DocumentCompleted
 
        If e.Url.ToString() <> "about:blank" Then 'bei about:blank ignorieren
 
            Dim inputElements As HtmlElementCollection = _
              WebBrowser1.Document.GetElementsByTagName("input")
 
            For Each element As HtmlElement In inputElements
                Dim addHandlers As Boolean = False
 
                Dim type As String = element.GetAttribute("type")
                If type.Length = 0 OrElse Array.BinarySearch(ignoredInputTypes, _
                  type) < 0 Then
                    addHandlers = True
                End If
 
                If addHandlers Then
                    'Ein Textfeld gefunden
 
                    element.AttachEventHandler("onfocus", AddressOf _
                      InputElementGotFocus)
                    element.AttachEventHandler("onblur", AddressOf _
                    InputElementLostFocus)
 
                End If
 
            Next
 
        End If
 
    End Sub
 
    Private Sub InputElementGotFocus(sender As Object, e As EventArgs)
        MessageBox.Show("Got Focus")
    End Sub
 
    Private Sub InputElementLostFocus(sender As Object, e As EventArgs)
        MessageBox.Show("Lost Focus")
    End Sub
 
End Class
(bei unbekannten Input-Typen wie "textbox", den die vbArchiv-Suchseite verwendet, stellen Browser das Feld standardmäßig als Textfeld dar (Typ "text"), deshalb das Array mit den Input-Typen, die ignoriert werden sollen)

Allerdings gibts dabei noch ein paar Probleme, z.B. kann der Browser für das gleiche Dokument mehrmals das DocumentCompleted-Ereignis aufrufen (dadurch werden die Handler mehrfach hinzugefügt), oder z.B. ein clientseitiges JavaScript setzt den Fokus auf ein Textfeld, bevor die Handler hinzugefügt werden konnten.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Aktivierung eines eingabefelds im webbrowser erkennen2.212Laserbrenner09.08.12 19:00
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.337Franki09.08.12 23:58
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.523Preisser10.08.12 00:46
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.326Laserbrenner10.08.12 06:55
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.313Micke10.08.12 10:07
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.592Preisser10.08.12 13:12
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.249Micke10.08.12 13:38
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.036CAM-Andi29.04.16 09:50
Re: Aktivierung eines eingabefelds im webbrowser erkennen1.041CAM-Andi29.04.16 10:58

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel