È possibile inviare eventi chiave e qualsiasi cosa li ascolti li otterrà, ma non modificheranno l'input, quindi non verrà visualizzata la lettera A
, ad esempio. Questa è principalmente una cosa di sicurezza; vedi "Manually firing events" per una discussione a riguardo.
Quindi, se si desidera che la lettera a comparire, è necessario modificare il valore della ingresso come si invia l'evento chiave. C'è un plugin jQuery per questo, vedi "The $.fn.sendkeys
Plugin".
Si può vedere come un <input>
reagisce con chiavi utente-applicata, eventi chiave, e che plug-in this jsFiddle.
Per riferimento, questo è il pezzo chiave di codice da che 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") ;
}
});
Questo plugin dovrebbe essere sufficiente se si sta solo cercando di "simulare la digitazione su un <input>
". Tuttavia, a seconda di cosa siete realmente cercando di fare, potrebbe essere necessario effettuare una o più delle seguenti operazioni:
- Basta impostare il testo a quello che si vuole che sia.
- Invia un evento
keydown
, se il javascript della pagina viene disattivato.
- Allo stesso modo, inviare un evento
change
, ecc., Se il javascript della pagina viene disattivato.
- Basta trovare e chiamare direttamente il javascript della pagina. Utilizzare l'iniezione di script , posizione,
unsafeWindow
e/o @grant none
per farlo.
- Qualcos'altro? Indica il tuo vero obiettivo e collega alla pagina di destinazione.
fonte
2012-12-19 06:09:34
è davvero utile :) – shuboy2014