2012-12-19 16 views
35

Chcę tylko symulować wpisywanie w polu <input> przy użyciu javascript.Jak symulować pisanie w polu wejściowym za pomocą jQuery?

Mam następujący kod:

var press = jQuery.Event("keydown"); 
press.ctrlKey = false; 
press.which = 65; 
$("#test").trigger(press); 

Ale kiedy załadować stronę, wejście pole #test ma wpisywanych znaków kodu dostępu z „65” oznacza „a”, ale nie „a "wejście.

Zasadniczo chcę, aby automatyczne pisanie na stronie internetowej przy użyciu Greasemonkey.

Podaj mi kilka pomysłów lub bibliotekę, z której mogę to zrobić.
Wielkie dzięki!

Odpowiedz

40

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:

  1. Wystarczy ustawić tekst do czego chcesz go mieć.
  2. Wysyłaj zdarzenie keydown, jeśli javascript strony wyłączy się z tego.
  3. Podobnie, wyślij wydarzenie change itd., Jeśli javascript strony wyłączy się z tego.
  4. Wystarczy wyszukać i wywołać bezpośrednio javascript strony. Użyj trybu do wprowadzania skryptów,,, i/lub , aby to zrobić.
  5. Coś jeszcze? Podaj swój prawdziwy cel i link do strony docelowej.
+1

To naprawdę pomocne :) – shuboy2014

Powiązane problemy