【问题标题】:OnKeyDown doesn't work for IE9 but works for everyother browserOnKeyDown 不适用于 IE9,但适用于所有其他浏览器
【发布时间】:2015-04-27 12:53:58
【问题描述】:

我试图让 onkeydown 属性运行一个只有警报的 JS 函数,它适用于 Chrome 和 FF,但不适用于 IE9。 keydown、keyup 和 keypressed 在 IE9 上都不起作用。这是我用于测试的代码:

JS:

function method()
{
   alert("hi");
}

平均售价:

<asp:TextBox id ="tb" runat = "server" onkeydown = "method();"/>

我试过这样称呼它onkeydown = "method();" 和这样onkeydown = "method(); return false;",但都没有奏效。

顺便说一下,在我计划实现的程序中,textBox 有一个扩展器。常规 HTML 在这里不起作用 ^_^'

另外,由于客户要求保持其封闭源,我不能发布太多原始来源。

任何建议将不胜感激。

【问题讨论】:

  • 您收到任何错误消息...
  • 怎么用onKeydown看看here
  • @user3588674 没有错误信息

标签: javascript asp.net google-chrome internet-explorer


【解决方案1】:

我编写了代码,我只需要更改方法名称即可。

我使用的是onkeydown="method()",但是当我更改为onkeydown="methodXX()" 时,魔法就起作用了。当然,我会更改 JavaScript 代码。

【讨论】:

  • 这个。它很可能与 Internet Explorer 公开的method property 有关。虽然它应该只适用于&lt;form&gt; 元素而不是全局的。再说一次,那是 IE,谁知道呢。
  • 我的函数在测试环境中的名称是 BBQ,但仍然无法正常工作。没有那样发布它,因为它很愚蠢,我很确定它不会改变
  • 你能和我们分享一下小提琴吗?
  • 我的测试和我在这里发布的差不多,但是以 BBQ 作为函数名称,Monkey 作为 textBox id。我认为没有必要显示我想使用它的程序的代码,因为我已经知道调用它时要做什么。此外,它很长,我的客户更喜欢闭源
  • @FrédéricHamidi 我有时认为 MS 项目开始时由人类设计并由驴实施
【解决方案2】:

试试这个。

代码看起来像这样,

<input id ="tb" runat = "server" onkeydown = "method();"/>

【讨论】:

  • 我需要在按下按键而不是点击时触发该事件,但感谢您的建议
  • 抱歉,我误读了这个问题。在他的情况下,我会打开 F12 开发人员工具来分析正在发生的事情。我总是遇到同样的问题,我只是注意到他使用的是 asp.net 文本框控件而不是输入控件,我建议更改为输入控件并在标签中添加 runat="server,这将具有相同的结果如上所述并且会起作用:)
  • 它会工作,但我的目标是控制,在原始程序中,它有一个与之相关的扩展器。但这是一个很好的建议
  • 您在最初的问题中从未说过,我会远离扩展器,它们是一种丑陋的做事方式。
  • 是的,它们可能很烦人,但有些可能非常有用。
【解决方案3】:

我将方法从 OnKeyDown 更改为 OnMouseMove 以模拟线程循环。在包围整个页面的 div 上调用它。这个 div 不做任何事情,它的目的是调用OnMouseMove 函数,这样我就可以用OnKeyDown 做同样的事情。感谢支持!

【讨论】:

  • 再次更改,现在在文档准备就绪时调用SetInterval,而不是OnMouseMove
猜你喜欢
  • 2014-12-21
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
相关资源
最近更新 更多