Możesz wysyłać kluczowe wydarzenia, a wszystko, co ich słuchasz, dostanie je, , ale nie zmienią one wejścia, więc na przykład nie pojawi się litera A
. Jest to głównie kwestia bezpieczeństwa; zobacz "Manually firing events", aby porozmawiać na ten temat.
Tak więc, jeśli chcesz, aby ta litera się pojawiła, musisz zmienić wartość wejściową podczas wysyłania zdarzenia klucza. Istnieje wtyczka jQuery do tego, patrz "The $.fn.sendkeys
Plugin".
Możesz zobaczyć, jak reaguje z kluczami użytkownika, zdarzeniami kluczowymi i tą wtyczką pod numerem this jsFiddle.
Dla porównania, jest to kluczowy fragment kodu z tego 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") ;
}
});
To Wtyczka powinna być wystarczająca, jeśli jesteś po prostu staramy się „symulować pisanie na zasadzie <input>
”. Jednakże, w zależności od tego, co jesteś naprawdę próbuje zrobić, być może trzeba wykonać jedną lub więcej z następujących czynności:
- Wystarczy ustawić tekst do czego chcesz go mieć.
- Wysyłaj zdarzenie
keydown
, jeśli javascript strony wyłączy się z tego.
- Podobnie, wyślij wydarzenie
change
itd., Jeśli javascript strony wyłączy się z tego.
- Wystarczy wyszukać i wywołać bezpośrednio javascript strony. Użyj trybu do wprowadzania skryptów,,, i/lub , aby to zrobić.
- Coś jeszcze? Podaj swój prawdziwy cel i link do strony docelowej.
To naprawdę pomocne :) – shuboy2014