javascriptを使用してWebシェルを作成しましたが、Firefoxでは機能しません。しかし、IEとChromeでは問題ありません。Firefoxでは、スクリプトがキーイベントを取得できないことがわかりました。では、どうすればこのバグを修正できますか?どうもありがとう :)
スクリプトアドレス: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;
}