Erzwingen Reagieren, um Ereignis durch injiziertes JavaScript auszulösen

9

Was ich versuche zu tun

Ich schreibe gerade einen kleinen Chat-Bot für Web-WhatsApp. Ich entschied mich für eine Chromverlängerung wegen der einfachen js-Injektion. Es gibt eine Sprachnachricht-Schaltfläche, die zu einer Schaltfläche zum Senden von Text umschaltet, wenn Sie etwas eingeben. React löscht das Sprachnachrichtenelement und rendert die Senden-Schaltfläche.

Das Problem

Dieser gesamte Prozess ist ereignisgesteuert. Ich setze den Text durch DOM, der das reaktive Ereignis nicht auslöst. Ich habe versucht, einen Tastendruck zu simulieren, aber es sieht so aus, als ob chrome's v8 alle Möglichkeiten aus Sicherheitsgründen simulieren würde. Ich habe auch versucht, den HTML-Code etwas zu manipulieren, reagierte aber nicht mehr, nachdem ich Änderungen an den Elementen vorgenommen hatte. Ich habe auch die jQuery-Funktion dafür ausprobiert, aber das hat auch nicht funktioniert.

Verweise auf Dinge, die nicht geholfen haben:

  

Keydown-Simulation in Chrome feuert normalerweise aber nicht der richtige Schlüssel

     

Ссылка

Die Frage

Gibt es eine Möglichkeit, zu erzwingen, dass Reagieren das Ereignis auslöst? Oder eine Art Workaround dafür?

    
mstorm 09.05.2015, 22:34
quelle

4 Antworten

3

"Lösung" Nach zwei Tagen Recherche muss ich zugeben, dass dies aus Sicherheitsgründen offensichtlich nicht möglich ist. Wenn Sie jemals in die gleiche Situation geraten wie ich, sollten Sie keine Zeit damit verschwenden, das Problem zu beheben, anstatt nur nach einem guten Workaround zu suchen. Ich werde meine für den WebWhatsapp-Bot hier aktualisieren, wenn ich es herausgefunden habe.

    
mstorm 12.05.2015, 13:19
quelle
1

Verwenden Sie die folgende Bibliothek

1. Ссылка 2. Ссылка

Laden Sie (in Konsole einfügen) dieses js-Skript in der Chrome-Konsole in der folgenden Reihenfolge

1.Laden Sie jquery.js

2.Laden bililiteRange.js

3.Laden Sie jquery.sendkeys.js

Nun können Sie den Text wie in diesem Beispiel an das Whatsapp-Eingabefeld senden:

%Vor%

zum Stimulieren des Click-Ereignisses auf der Sende-Schaltfläche:

%Vor%

Fertig

    
Renati 15.02.2018 06:06
quelle
0

Chrome lässt keine Seite den Tastendruck simulieren, aber Sie können dies mit einer externen Anwendung tun. Java ist das Beste für solche Sachen. Fordern Sie von Ihrer Seite an, dass der Server die Java-Anwendung anfordert, den Tastendruck für Sie auszuführen. Chrome blockiert den Tastendruck der Roboterklasse in Java nicht. Hier ist ein Video, in dem Robot-Klasse Text in eine Webseite eintippt. Ich kann Ihnen mit der Java ( Verarbeitung ) helfen, wenn Sie möchten.

    
user4572199 12.05.2015 08:01
quelle
0

In der Vergangenheit, als ich versuchen musste, Tastenanschläge von einer so hohen Stufe zu simulieren, wie es mir in Javascript erlaubt ist, habe ich mich von dem genialen gremlins.js . Die Art und Weise, wie sie ihre Typer Gremlins eingeben, ist die folgende (aus src / spezies / typer.js ):

%Vor%

Es ist ziemlich hinterhältig, und in der Vergangenheit hat ein paar Einschränkungen für mich bestanden, Sie könnten es versuchen.

    
Jack Preston 12.05.2015 08:15
quelle

Tags und Links