Ich verwende DCEF3, eine Delphi-Wrapper für Chrom. Ich betreibe viel JS-Code auf meiner app mit Seiten, wie im folgenden Beispiel zu interagieren:Halten Sie die Seite aktiv nach dem Ausführen von JS-Code in der URL
document.getElementById('name').value = 'Test';
Dazu i die ‚Last‘ Methode von Chromium anrufen und den Code unten in das URL-Feld auszuführen:
javascript:document.getElementById('name').value = 'Test';
Es ist das gleiche wie ich Chrome öffnen und den obigen Code in das URL-Feld einfügen. Es funktioniert, aber das Problem ist, nachdem ich den Befehl ausgeführt habe, ersetzt der Browser die aktuelle Seite für eine leere Seite mit dem Inhalt "Test".
Die einzige Art, wie ich dieses Problem zu vermeiden, finden konnte, um das Element zu füllen und die Seite aktiv zu halten, ist einen zusätzlichen ‚Focus‘ Befehl in der gleichen URL, wie dies auszuführen:
javascript:document.getElementById('name').value = 'Test';
document.getElementById('name').focus();
Die Die zusätzliche "Fokus" -Methode scheint Chrome zu zwingen, die aktuelle Seite aktiv zu lassen, anstatt sie durch eine leere Seite zu ersetzen.
Ist dieser Ansatz korrekt? Gibt es einen besseren Weg, diese Aufgabe zu erfüllen?
Danke!
Ich testete Ersetzen des Fokus durch die 'Rückkehr falsch', aber der Elementwert auf dem Bildschirm wird nicht geändert ... – delphirules
Aktualisierte Antwort. Sollte jetzt funktionieren. – Arnial