Ich habe einen benutzerdefinierten Browser mit dem VB.NET-Framework, um die Elemente eines Dokuments zu erhalten. Für eine einfache Zusammenfassung jedes Mal, wenn ich auf ein Element klicke, wird documentClicked eine Nachricht anzeigen, aber wenn ich auf Elemente in einem iFrame klicke, erhält ich keine Daten.Visual Basic get geklickt Element in iFrame
Ich dachte, dass da doc ein HtmlDocument ist und ein iframe ein HtmlWindow oder etwas in diesen Zeilen wäre; deshalb funktioniert es nicht, aber ich bin mir nicht sicher, wie ich das erklären soll.
Im Grunde möchte ich nur in der Lage sein, auf ein beliebiges Element auf einer beliebigen Seite klicken und es zeigt die Koordinaten und Größe - funktioniert gut mit allem außer Elementen in einem iFrame.
Dim WithEvents doc As HtmlDocument
Private Sub WinBrowse_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) Handles webBrowser.DocumentCompleted
doc = CType(sender, WebBrowser).Document
End Sub
Private Sub doc_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs) Handles doc.Click
documentClicked(webBrowser, e)
End Sub
Ich bin mir nicht sicher, dass dies eine vollständige Antwort ist, aber nach meiner Erfahrung ist das VB WebBrowser-Steuerelement kein ausgewachsener Browser - es ist nur ein VB-Steuerelement, das die residente IE-Browser-Engine verwendet, um einfach anzuzeigen HTML-Seiten. Einige Dinge sind über seine Fähigkeiten hinaus (versuchen Sie, contenteditable damit zu verwenden). Ich habe nicht iframe versucht, aber es würde mich nicht überraschen, wenn es nicht mochte - es ist wirklich sehr begrenzt. –
Ich kann Elemente im iFrame automatisch erhalten, indem ich alle iFrames auf der Webseite finde und dann das Element finde. Im Wesentlichen muss ich nur einen iFrameClicked-Unterserver haben, der den iFrame (HTMLWIndow) anstelle des HTMLDocuments generiert. Zu meinem Verständnis. – Torewin
OK - das hört sich vielversprechend an ... Wenn Sie Iframe-Elemente erhalten können, müssen Sie sie wahrscheinlich nur im Iframe-Dokument (das ein separates Dokument aus dem Container-HTML-Dokument ist) richtig identifizieren. Ohne Ihren Code zu sehen, kann ich nicht viel mehr vorschlagen. –