können Sie wichtige Ereignisse senden, und alles hören sie sie bekommen, aber sie werden nicht die Eingabe ändern, so dass Sie den Brief A
erscheinen, zum Beispiel nicht sehen. Dies ist hauptsächlich eine Sicherheitssache. Eine Diskussion dazu finden Sie unter "Manually firing events".
Wenn also der Buchstabe angezeigt werden soll, müssen Sie den Wert der Eingabe ändern, während Sie das Schlüsselereignis senden. Es gibt ein jQuery-Plugin dafür, siehe "The $.fn.sendkeys
Plugin".
Sie können sehen, wie eine <input>
reagiert mit Benutzer-Tasten, Schlüsselereignisse und das Plugin bei this jsFiddle.
als Referenz, das ist der Schlüssel Stück Code aus diesem jsFiddle:
$("button").click (function (zEvent) {
if (zEvent.target.id == "simA_plain") {
console.log ("Send Plain key event");
var keyVal = 65;
$("#eventTarg").trigger ({
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
});
}
else {
console.log ("Use the Plugin to simulate a keystroke");
$("#eventTarg").sendkeys ("B") ;
}
});
Das Plugin sollte ausreichend sein, wenn Sie nur versuchen, „Typisierung zu simulieren auf einem <input>
“. Allerdings, je nachdem, was Sie sind wirklich versuchen zu tun, müssen Sie möglicherweise eine oder mehrere der folgenden Funktionen ausführen:
- Nur stellen Sie den Text zu, was Sie wollen, es zu sein.
- Senden Sie ein
keydown
Ereignis, wenn das Javascript der Seite davon ausgelöst wird.
- Ebenso senden Sie ein 10 Ereignis, etc., wenn das Javascript der Seite davon auslöst.
- Suchen Sie einfach das Javascript der Seite direkt und rufen Sie es auf. Verwenden Sie Skript-Injektion, die Position hack,
unsafeWindow
und/oder @grant none
Modus, um das zu tun.
- Etwas anderes? Nennen Sie Ihr wahres Ziel und verlinken Sie auf die Zielseite.
es wirklich hilfreich :) – shuboy2014