Ist es möglich, die dispatchEvent () - ein Mausklick auf ein <input type=text> - element?

Grundsätzlich bin ich versucht zu versenden custom made-Maus click-Ereignis für ein text-input-element mit dem folgenden code (siehe diesen jsFiddle):

function simulateClick(id) {
    var clickEvent = document.createEvent("MouseEvents");
    clickEvent.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0,
        false, false, false, false, 0, null);

    var element = document.getElementById(id);
    element.dispatchEvent(clickEvent);
}

Wenn ich diesen code auf eine type="checkbox" - element funktioniert es völlig in Ordnung, aber es funktioniert überhaupt nicht wenn man auf einem type="text" element.

Nun, hier ist die definition von initMouseEvent() auf MDN:

event.initMouseEvent(type, canBubble, cancelable, view, 
                 detail, screenX, screenY, clientX, clientY, 
                 ctrlKey, altKey, shiftKey, metaKey, 
                 button, relatedTarget);

Also im obigen Beispiel screenX, screenY, clientX und clientY alle 0 (immer noch der obige code funktioniert einwandfrei in Ordnung, mit Checkboxen, unabhängig von Ihrer position). Ich habe versucht, erfassen eines realen Ereignisses und der übergabe der Bildschirm und die client-Koordinaten auf die cusom made Ereignis, ohne Erfolg.

Obwohl ich vielleicht text-input-Elemente ignorieren benutzerdefinierte Maus-Ereignisse, die aus Sicherheitsgründen, aber dann element.focus() sollte nicht funktionieren, das tut es.

Irgendwelche Ideen oder Erkenntnisse wäre sehr dankbar!

InformationsquelleAutor der Frage Philip Kamenarsky | 2011-03-18

Schreibe einen Kommentar