Hallo @ all,
ich habe folgendes Problem mit der Frage ob Ihr mir vielleicht helfen könnt:
Ich habe einen //EDIT:** WebbrowserCONTROL** der per Navigate() Event eine Website aufruft.
In dieser Website gibt's mehrere Links die wieder ein NEUES Dynamisches Fenster aufrufen in dem sich wieder Links befinden ...
UND Diese Links möchte ich gern per Code auslesen.
Wie gesagt sind diese Links dynamisch und es gibt keine eindeutige ID dazu.
Mit Document.GetElementByID[] oder Dokument.AktiveElement hatte ich bisher noch kein Erfolg, da wie gesagt der Bezeichner nicht eindeutig ist
Vielleicht habt Ihr ja ne Idee
//Edit wie man ein angeklickten Link ausliest weis ich, aber nicht wie in einem neuen Fenster !!
---- >
Keine Signatur 😉
Hi,
Du solltest sagen, mit welchem Control Du arbeitest; vermutlich Windows Forms aufgrund der Navigate()-Methode?! Oder welches der vielen Navigates meinst Du?
Und vermutlich würde es auch helfen zu beschreiben, was Du genau mit dynamischem Fenster meinst.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Also wie schon in meinem Beitrag beschrieben handelt es sich um ein WebbrowserControl, da es wo anders ja kein .Navigate("STRING"); gibt 😉
Hier wird dynamisch ein weiteres Fenster geöffnet und dessen Links möchte ich gern auslesen ...
//EDIT: Google: Navigate() Methode c#
ergibt, das es diese Methode ausschließlich beim WebBrowser Control gibt ...
---- >
Keine Signatur 😉
Durchlaufe .getElementsByTagName("a") dann hast du alle Links im Dokument.
Grüße
**:::
Sorry aber nicht im neuen offenen Fenster ... und wie schon im Beitrag oben Beschrieben hatte ich das schon probiert, da bekomme ich nur die Links vom Hauptfenster ...
---- >
Keine Signatur 😉
Also wie schon in meinem Beitrag beschrieben handelt es sich um ein WebbrowserControl, da es wo anders ja kein .Navigate("STRING"); gibt 😉
Du hast geschrieben, dass Du einen WebBrowser hast; nicht Webbrowser Control. Das sind zwei paar Stiefel. Dahingehend ist auch nicht mehr der Webbereich der richtige Forenbereich, sondern Windows Forms. Das Thema ist daher nun auch verschoben und der Titel angepasst.
(Nach bald 10 Jahren im Forum kann man eine etwas präzisere Ausdrucksweise eigentlich schon erwarten 😉 )
Das kann zur Verwirrung führen, da Javascript selbst ebenfalls die Methode navigate() hat und eben im Browser ausgeführt ist.
Beim Navigate musst Du warten, bis das Dokument komplett geladen ist (DocumentCompleted-Event). Anschließend kannst Du den DOM laden und bekommst auch die korrekten Inhalte.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ok Danke 😉
Hier jedoch gibt's kein DOM Dokument , also ist DOM auch nicht die Richtige Lösung
---- >
Keine Signatur 😉
also ist DOM auch nicht die Richtige Lösung
Warum nicht? Es ist eine mögliche Lösung, denn wie Abt schon sagte, kannst du in DocumentCompleted-Eventhandler darüber auf die Dokumentelemente zugreifen, z.B. auf a-Tags.
Übrigens DOM ist kein Dokument, sondern eine Schnittstelle (interface) für Datenzugriffe.
Grüße
**:::
Hier jedoch gibt's kein DOM Dokument , also ist DOM auch nicht die Richtige Lösung
Du hast wirklich in 6 Minuten, in denen unsere beiden Beiträge auseinander liegen, gesucht und verstanden was ein DOM ist, wie man auf diesen Zugriff hat und wie der Event in diesem Zusammenhang funktioniert?
Das glaube ich Dir beim besten Willen nicht.... da frag ich mich schon, wieso ich mir die Mühe mache, zu helfen.
Zugegeben; man findet in 20 Sekunden via Google, wie man auf den DOM zugreifen kann - aber irgendwie fühl ich mich da ziemlich verarscht bei der Sache...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code