1

Websocket を使用して、ブラウザー間でキーボードをシミュレートできますか? 矢印キーと F11 をシミュレートしようとしています。

4

2 に答える 2

4

主なイベントは、長年にわたってブラウザーで利用可能でした

サポートのリストについては、http://www.quirksmode.org/dom/events/keys.htmlを参照 してください。

ここでjQueryでキーイベント を操作するキープレスイベントをプログラムでシミュレートすることは可能ですか?

Websockets はすべてのブラウザーで利用できるわけではない新しいテクノロジーですが、Socket.io などの古いブラウザーで必要に応じて Web ソケットをシミュレートするライブラリを使用して、双方向のリアルタイム メッセージングを行うことができます。

http://socket.io/

クライアント上の疑似コードは次のようになります。

(function ($) {
    function simulateKeyPress(character) {
      jQuery.event.trigger({ type : 'keypress', which : character.charCodeAt(0) });
    }

    function onkeypress(key, ts) {
       var act = {"timestamp" : ts, "key" : key};
       socketIoClient.emit("message", act);
    }

    $('body').keypress(function(e) {
       // Send date in case you want to order/buffer on the server
      onkeypress(e.which, new Date());
    });

    var socketIoClient = io.connect(null, {
       'port': '#socketIoPort#'
        , 'rememberTransport': true
        , 'transports': ['websocket', 'xhr-polling'] // put here all the transports you need
    });

    // Handle the key press events
    socketIoClient.on('message', function(json) {
      var act = JSON.parse(json);
      if (act) {
      // Not sure what the keys will do but if you just want to echo them
       simulateKeyPress(act.key);
     }
    });
})(jQuery);

お役に立てれば

于 2012-08-23T19:21:31.237 に答える
0

もちろんできます!

  1. Websocketサーバーへの接続を開き、すべてのjQuery keyUp-Eventでリクエストを送信します!
  2. WebSocket側では、イベントスローを他のブラウザー接続に渡すだけです。
  3. 他のブラウザでは、KeyPressをシミュレートするだけですsimulateKeyPress(e);
于 2012-08-27T10:55:17.637 に答える