我尝试录制用户键盘事件并在phantomjs
中重播客户端页面(即firefox浏览器)代码如下:
document.onkeydown=function(e){
sendToPhantom( e.which) //this will send browser key code to phantomjs
}
in phantomjs :
....
function keyFromClient(which){
var c = which
if (c==8) {
c = page.event.key.Backspace //0x01000003 in Qt
} else if (c==13) {
c = page.event.key.Enter //0x01000004 in Qt
} else {
c = String.fromCharCode(c)
}
page.sendEvent('keydown', c)
}
如您所见,它必须从e.which
转换为page.event.key以获取某些特殊键,例如BackSpace
,Enter
等,{{3 }}
问题
如何正确地将所有e.which转换为page.event.key?有这么多的可能性,它必须是一些标准的方法,任何人都知道吗?