【问题标题】:Capturing keyCode value in Firefox在 Firefox 中捕获 keyCode 值
【发布时间】:2016-02-11 15:22:23
【问题描述】:

我试图通过捕获 onkeypress 事件来限制哪些字符可以输入到文本框中。以下(简化的)sn-p 在 Google Chrome 和 Internet Explorer 中运行良好,但在 Firefox 中运行良好:

function CheckKeyPress(e) {
    alert("Check point #1");
    var x = e || window.event;
    var key = (x.keyCode || x.which);
    alert("Check point #2");
    // do some stuff here
    return
}

Firefox 不会触发第二个警报。为什么不呢?

非常感谢任何和所有的回复。

【问题讨论】:

  • 你确定 FF 根本没有阻止多个警报吗?
  • 您如何称呼这次活动?从内联处理程序?控制台中有任何错误消息吗?
  • 使用event.charCode作为重复的说
  • @MarcosPérezGude 阅读问题,在第二个警报之前发生错误,示例代码中的keyCode 不会触发错误。由于内联按键处理程序,x 未定义。

标签: javascript firefox


【解决方案1】:

我在搜索另一个网站时找到了答案。对受影响文本框的内联声明的以下更正解决了我的问题:

 onkeypress="CheckKeyPress(this,arguments[0] || window.event)"

似乎 Internet Explorer 更喜欢显式传递 window.event 对象,而 Firefox(和其他非 IE 浏览器)更喜欢传递参数引用。

感谢所有做出回应的人..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多