我可以使用websockets在浏览器之间模拟键盘吗? 我希望模拟箭头键和F11。
答案 0 :(得分:4)
关键事件已在浏览器中提供多年
请参阅 http://www.quirksmode.org/dom/events/keys.html获取支持列表
在这里处理jQuery中的关键事件 Is it possible to simulate key press events programmatically?
Websockets是一种新技术,并非在所有浏览器中都可用,但您可以使用模拟Web套接字的库(如果需要在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);
希望这有帮助
答案 1 :(得分:0)
当然可以!
simulateKeyPress(e);