2011-08-28 69 views
1

出于某种原因,这个脚本不能在Firefox工作:Esc键没有得到认可在Firefox

document.onkeydown=function keypress(e) { 
    if (e.keyCode == 27) { 
     window.location = "/edit" 
    }; 
}; 

它在Chrome中工作正常,但由于某种原因,它不能在Firefox工作。

基本上,当你按下退出键时,它所做的是加载/edit页面。

+0

在FF5中为我工作:http://jsfiddle.net/Tm2PZ/ – Mrchief

+0

尝试运行'console.log(e)'。检查输出以检查是否发生了某些事情。 – Trevor

回答

6

使用:

document.onkeydown=function keypress(e) { 
    e=(e||window.event); 
    if (e.keyCode == 27) { 
     try{e.preventDefault();}//Non-IE 
     catch(x){e.returnValue=false;}//IE 
     window.location = "/edit"; 
    }; 
} 

ESC默认动作是停止加载页面,
所以你必须从这种行为阻止,否则你无法改变位置。

小提琴:http://jsfiddle.net/doktormolle/CsqgE/(点击进入结果帧使用ESC第一前)

但是但是,你真的应该使用另一个关键。
如果用户使用ESC,则没有别的用户期望当前页面的加载停止。

+0

啊。我不知道那个键盘快捷键。我选择Escape是因为我知道SquareSpace使用它,所以我必须尝试找出另一个关键。 – JacobTheDev

0

事件处理程序为我工作:http://jsfiddle.net/Tm2PZ/

我怀疑你设置lcoation无效。

改为尝试设置window.location.href

+0

@Mrchief:你错了。 –

+0

@ Dr.Molle:与你同意。删除了我的评论。 – Mrchief

+0

@Dmitriy:这里有什么问题? – Mrchief