如何在火狐中检测KeyEvent
how to detect keyevent in firefox
我已经用javascript写了一个Web shell,但它在Firefox中不起作用。但是在IE和Chrome中,这很好。我发现在火狐中我的脚本无法获取密钥事件。那么我该如何修复此错误呢?非常感谢:)
外壳:http://cdqzoi.com
脚本地址:http://cdqzoi.com/console.js以下代码是上述脚本的一部分,用于处理 keyevent。
this.keydown=function(){
key=event;
keyN=event.keyCode?event.keyCode:event.which?event.which:event.charCode;
if(keyN==0)return;
if((keyN==8)||(keyN==116)||(key.ctrlKey && keyN==82)){
if(keyN==8 & !lock){
this.command = this.command.substr(0,this.command.length-1);
document.getElementById("console").innerHTML=getPrefix(this.transmit)+this.command;
}
try{
event.returnValue=false;
event.keyCode=0;
}catch(e){
event.preventDefault();
}
}
keyN=0;
}
this.keypress=function(){
key=event;
keyN=event.keyCode?event.keyCode:event.which?event.which:event.charCode;
if(keyN==0)return;
if(!lock){
if(keyN==13){
if(this.transmit==0){
user=this.command;
document.getElementById("_console").innerHTML+=document.getElementById("console").innerHTML+"<br />";
document.getElementById("console").innerHTML='';
this.transmit=1;
this.st=1;
}else
if(this.transmit==1){
this.st=0;
pass=this.command;
document.getElementById("_console").innerHTML+=document.getElementById("console").innerHTML+"<br />";
document.getElementById("console").innerHTML="";
con.login(user,pass);
try{
event.returnValue=false;
event.keyCode=0;
}catch(e){
event.preventDefault();
}
keyN=0;
return;
}else
if(this.transmit==2){con.execute(this.command);}
this.command='';
}else if(keyN==8){
}else{
this.command=this.command+String.fromCharCode(keyN);
}
if(this.st==0)document.getElementById("console").innerHTML=getPrefix(this.transmit)+this.command;
else document.getElementById("console").innerHTML=getPrefix(1);
}
try{
event.returnValue=false;
event.keyCode=0;
}catch(e){
event.preventDefault();
}
keyN=0;
}
像这样编写处理程序:
this.keypress = function(e) {
var ev = window.event || e;
// use ev from here onwards
原因是IE(显然,Chrome也选择通过全局变量而不是函数参数传递事件数据)。
相关文章:
- 如何检测是否有溢出
- 如何检测用于WebGL的专用或集成显卡
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 如何使用密码检测网络中的状态连接
- 使用JavaScript检测Flash
- 在不阻止默认行为的情况下检测IE10中的缩放
- 检测个位数整数时正在转换毫秒
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 动态插入的表:JQuery未检测到最后一行
- 检测页面上某个元素中选择(突出显示)或单击的内容
- jQuery检测浏览器是否支持Zoom
- 检测iframe是否跨域的愚蠢方法
- 检测图像分辨率
- 如何检测第三方广告服务器请求
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 当没有文本输入聚焦时检测空格键按下
- 正在检测导航到<a name=“;最新主题”></a>
- 如何检测重叠元素下的单击
- 如何在火狐中检测KeyEvent