【问题标题】:jQuery arrow key binding ( webbrowser class IE )jQuery 箭头键绑定(webbrowser 类 IE)
【发布时间】:2011-03-10 09:19:29
【问题描述】:

我有一个使用 microsoft webbrowser 类 ( IE activex ) 的应用程序。 我正在尝试绑定 keydown 事件并将自定义控件添加到箭头键,但是使用箭头键时不会触发 keydown 事件。

我尝试了以下代码来捕获 keydown 事件:

$(document).keydown(function(e){   
alert("keydown");  });

$("#element").keydown(function(e){   
alert("keydown");  });

document.onkeydown = function(evt) {
  evt = evt || window.event;
  var keyCode = evt.keyCodeq
  if (keyCode >= 37 && keyCode <= 40) {
      alert("ok");
      return false;
  }
};

keydown 事件有效,例如删除键,但在使用箭头键时无效。 当我在 activex 浏览器中使用箭头键时,文档会滚动,但无法添加自定义控件。

在常规 IE(非 activex)中一切正常。

有什么建议吗?

【问题讨论】:

标签: jquery activex webbrowser-control keydown


【解决方案1】:

其实没什么可做的。

1.

<input type="text" id="test_element">

2.

<script type="text/javascript">
$(function(){
 $("#test_element").keydown(function(e){
  switch(e.which){
   case 37: movement = 'left'; break;
   case 38: movement = 'up'; break;
   case 39: movement = 'down'; break;
   case 40: movement = 'right'; break;
   default: movement = false; break;
  }
  if(movement){
    alert("You just clicked "+movement+" arrow key");
  }
 });
});
</script>

【讨论】:

  • 这是正确的,当我使用常规 IE 当我在 webbrowser 控件 (activex) 中调用我的网页并在#test_element 中使用箭头键时,没有任何反应示例:dl.dropbox.com/u/399104/screenshots/2011-03-10_1041.swf First screen = IE8 Second screen = 我的应用程序中的网络浏览器控件