Rolf B: jQuery .change() Method - automatisches Nachladen bei automatisierter Webseitenbestückung funktionert nicht

Beitrag lesen

Hallo Oelkanne,

der Unterschied ist, dass es zum Triggern eines Klicks eine explizte Methode im DOM gibt: Click.

IEApp.Document.dispatchEvent("standardCode")

Das kann nicht funktionieren. DispatchEvent braucht ein Event-Objekt. Ich habe nochmal geforscht. Das change-Event wirft ein generisches Event-Objekt, kein spezielles wie MouseEvent oder KeyboardEvent.

Die Dokumentation bei MS ist - wie üblich - write-only. Wer weiß, wie es geht, kann sie schreiben. Aber wer nicht weiß, wie es geht, kann sie nicht lesen. Immerhin gibt's zwischendurch mal Beispiele.

Guckst Du hier

Und ich habe diesen Thread bei Stackoverflow gefunden.

Ich würde also annehmen, dass Du so vorgehen musst:

Dim changeEvent
changeEvent = IEApp.Document.createEvent("HTMLEvents")
changeEvent.initEvent "change", true, true

???.dispatchEvent changeEvent

Für ??? brauchst Du das Select-Element, das den Change melden soll. Also vermutlich das, was Du mit GetElementsByName(ElementName) ermittelt hast. Wobei GetElementsByName - wie der Name sagt - eine Collection liefert und kein einzelnes Element, Du müsstest den Trigger-Mechanismus also in die vorhandene Schleife For Each htmloption As Object ... einbauen. Zuerst die Option setzen, dann das Event-Objekt erzeugen und mit htmloption.dispatchEvent abfeuern.

Keine Garantie für irgendwas - ich habe keine Ahnung in welchem Umfeld du agierst und meine Rückfrage hast Du ignoriert. "VB" ist keine hinreichende Aussage.

Rolf

--
sumpsi - posui - obstruxi