Walczyłam kiedyś z czymś podobnym. Nie dam głowy, czy to zadziała też w FF, bo finalnie testowałam tylko w Chromie i nie dam głowy, czy to usatysfakcjonuje skrypt testujący akurat na tej konkretnej stronie, ale użyłam czegoś takiego:
/* --- f: event --- */
function m_event(obiekt, typ) {
var e = new Event(typ, {"bubbles": true, "cancelable": true});
obiekt.dispatchEvent(e);
}
/* --- f: event --- */
/* --- f: m_klawisz --- */
function m_klawisz(obiekt, stan_klawisza, keyCode, charCode, code, ctrl, location) {
/* --- zrób event --- */
e = document.createEvent("KeyboardEvent");
/* --- /zrób event --- */
/* --- zainicjuj event --- */
e.initKeyboardEvent(stan_klawisza, true, true, document.defaultView, keyCode, keyCode, "", "", false, "");
/* koryguj parametry */
Object.defineProperty(e, 'keyCode', { get: function() {return this.keyCodeVal;} });
Object.defineProperty(e, 'which', { get: function() {return this.keyCodeVal;} });
Object.defineProperty(e, 'location', { get: function() {return location;} });
Object.defineProperty(e, 'code', { get: function() {return code} });
e.keyCodeVal = keyCode;
/* --- /zainicjuj event --- */
/* --- wywołaj event --- */
obiekt.dispatchEvent(e);
/* --- /wywołaj event --- */
}
/* --- f: m_klawisz --- */
/* --- f: m_wklej --- */
function m_wklej(obiekt, tekst) {
obiekt.focus(); /* fokus */
m_klawisz(obiekt, "keydown", 17, 0, "ControlLeft", true, 1); /* down Ctrl */
m_klawisz(obiekt, "keydown", 86, 0, "KeyV", true, 0); /* down V */
m_klawisz(obiekt, "keypress", 0, 118, "KeyV", true, 0); /* down V (tylko Firefox) */
obiekt.value = tekst; /* value */
m_event(obiekt, "input"); /* input */
m_klawisz(obiekt, "keyup", 86, 0, "KeyV", true, 0); /* down V */
m_klawisz(obiekt, "keyup", 17, 0, "ControlLeft", false, 1); /* down Ctrl */
}
/* --- /f: m_wklej --- */
Symuluje wykonanie Ctrl+V na inpucie.
Oczywiście obiekt.value = tekst;
będziesz musiał sobie zmienić.