0

誰かがこのコードで私を助けてくれますか? 送信先のコントロールを具体的に指定せずに、Web ページのキーボード入力をシミュレートしようとしています。私はcreateEventとdispatchEventを通してそうしようとしています。しかし、実際のキーが押されたとき、イベントには文字への参照がありません。charCode、keyCode および常に 0 です。

ご協力いただきありがとうございます!マックス

<html>
<body> 
    <button type="button" onclick="KeyPressInject('e')">TEST</button>
</body>

<script type="text/javascript">

addEventListener("keypress", function(event){ EventKeyPressed(event)}); 

function KeyPressInject(letter)
{
    var evt = document.createEvent("KeyboardEvent");
    Object.defineProperty(evt, 'keyCode', { 
                         get : function() {
                                 return this.keyCodeVal;
                         } });      
    evt.initKeyboardEvent ("keypress", true, false, window, false, false, false, false, letter, letter); 
    var canc = !window.dispatchEvent(evt);
}

function EventKeyPressed(event)
{
    console.log("Key Pressed " + event.charCode);
}   
</script>
</html>
4

1 に答える 1

0

これが役立つかどうかを確認してください。簡単なフィドルを用意しました。 基本的にはキープレスイベントをトリガーします

起動するキャラクターと要素を指定します。

simulateKeyPress("e", 'body');

which プロパティで押された文字を定義する必要があるのは、コードとは異なります。

于 2014-03-08T20:49:17.823 に答える