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-2024
 
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: Laserbrenner
Datum: 10.08.12 06:55

Guten Margen,

@Preisser ja genau so eine Funktion habe ich gesucht, nur eben für alle webseiten.Hat man nicht irgendwie die möglichkeit den blinkenden Coursor abzufragen?

@Franki ich wolte bei aktivierung eines Eingabefeldes automatisch eine Bildschirmtastatur einblenden lassen um die bedienung zu erleichtern.

gruß
Matthias
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Laserbrenner
Datum: 09.08.12 19:00

Hallo alle zusammen,

könnt Ihr mir verraten wie man die aktivierung eines Eingabefeldes in webbrowser element erkennen kann? also z.B. wenn auf Google das Eingabefeld angeklickt wird um ein Suchbegriff einzugeben.

vielen Dank
Matthias
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Franki
Datum: 09.08.12 23:58

Hallo,

das geht nicht, schon gar nicht bei fremden Websites.
Wenn du das für deine eigene Seite haben möchtest musst du clientseitig z.B. mit JavaScript arbeiten (GotFocus), aber auch das funktioniert nur dann wenn der User damit "einverstanden" ist.

Was genau möchtest du denn überhaupt erreichen? Das Anklicken eines Feldes sagt doch noch gar nichts aus.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Preisser
Datum: 10.08.12 00:46

Hallo,

tatsächlich kann man das DOM eines eingebetteten Webbrowsers verwenden, um die Nodes des geladenen HTML-Dokuments zu manipulieren und beispielsweise auch Eventhandler hinzuzufügen, z.B. so (hier eine Form mit einem "Webbrowser1"):

Public Class Form1
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.google.de/")
 
    End Sub
 
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As _
      WebBrowserDocumentCompletedEventArgs) Handles _
      WebBrowser1.DocumentCompleted
 
        If e.Url.ToString() = "http://www.google.de/" Then 'nur bei der 
        ' Google-Startseite
 
            Dim inputElements As HtmlElementCollection = _
              WebBrowser1.Document.GetElementsByTagName("input")
 
            For Each element As HtmlElement In inputElements
 
                If element.Name = "q" Then
                    'Sucheingabefeld gefunden
 
                    element.AttachEventHandler("onfocus", _
                        Sub(sender2 As Object, e2 As EventArgs)
                            MessageBox.Show("Suchfeld Fokus")
                        End Sub)
 
                End If
 
            Next
 
        End If
 
    End Sub
 
End Class
Dort sollte die Google-Seite geladen werden, und immer wenn dann die Suchtextbox den Fokus bekommt, sollte eine Meldung angezeigt werden.

Beitrag wurde zuletzt am 10.08.12 um 01:04:15 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Micke
Datum: 10.08.12 10:07

Moin,

dazu müßtest du (einfach) die Webseite beim laden im browser modifizieren, ist ja nur text. du würdest den html elementen input ein event deiner wahl hinzufügen, in dem die javascript funktion mit der tastaturanzeige aufgerufen wird.
diese funktion kannst du genauso einfach in die seite stecken.

es gibt zahlreiche browserplugins die das gleiche machen, und bspw. werbung und andere scripte entfernen & hinzufügen.

Micke

Beitrag wurde zuletzt am 10.08.12 um 10:11:43 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: Micke
Datum: 10.08.12 13:38

Hi Preisser,
sorry hab deinen post zu beginn nicht gesehen, gute idee.

@Laserbrenner:
wenn du wählen kannst zwischen meinem Weg das html zu frisieren und dem von Preisser, nimm den von Preisser. Meiner braucht zwar weniger Rahmenbedingungen, aber typisierter ist natürlich besser.

Micke

Beitrag wurde zuletzt am 10.08.12 um 13:41:57 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: CAM-Andi
Datum: 29.04.16 09:50

Hallo.
Kann man denn die Eingabe in das Input-Element auslesen, bzw. manipulieren?

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktivierung eines eingabefelds im webbrowser erkennen 
Autor: CAM-Andi
Datum: 29.04.16 10:58

Ja, kann man:

An Stelle von AddressOf muss notiert werden:
el.AttachEventHandler("onclick", Sub(sender As Object, e As EventArgs) 
Me.MachWasMitDemElement_Methode(el, EventArgs.Empty)
End Sub)

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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