【问题标题】:Esc key not getting recognized in FirefoxFirefox 无法识别 Esc 键
【发布时间】:2011-08-28 01:57:26
【问题描述】:

由于某种原因,该脚本在 Firefox 中无法运行:

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

它在 Chrome 中运行良好,但由于某种原因它在 Firefox 中无法运行。

基本上,它的作用是在您按下退出键时加载/edit 页面。

【问题讨论】:

  • 在 FF5 中为我工作:jsfiddle.net/Tm2PZ
  • 尝试运行console.log(e)。检查输出以检查是否发生了某些事情。

标签: javascript firefox keypress esc-key


【解决方案1】:

使用:

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 ,则用户期望当前页面的加载停止,仅此而已。

【讨论】:

  • 啊。我不知道那个键盘快捷键。我选择了 Escape,因为我知道 SquareSpace 使用它,我必须尝试找出另一个键。
【解决方案2】:

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

我怀疑您设置的 lcoation 无效。

尝试设置window.location.href

【讨论】:

  • @Dr.Molle:同意你的看法。删除了我的 cmets。
猜你喜欢
  • 2017-06-09
  • 2012-08-06
  • 2018-05-08
  • 2012-07-18
  • 2014-03-20
  • 1970-01-01
  • 2013-05-13
  • 2016-09-26
相关资源
最近更新 更多