捕获击键并进行回发





0/5 (0投票)
捕获按键并执行回发。随着 Web 2.0 的出现,客户对
捕获击键并进行回发
随着 Web 2.0 的出现,客户对交互式 Web UI 的要求越来越高。随着应用程序从桌面迁移到 Web,最终用户要求 Web 应用程序提供与他们在旧桌面应用程序中相同的观感。这包括桌面应用程序提供的按键组合,用于执行一些快速任务,例如“保存”、“编辑”等。在 Web 应用程序中提供此功能有点棘手,但可以使用 JavaScript 来完成。
首先,要捕获用户在使用网页时按下某个键时发生的按键事件。
方法如下。
<script type="text/javascript">
document.onkeyup = KeyCheck;
functionKeyCheck(e){
varKeyID = (window.事件) ? 事件.keyCode : e.keyCode;alert("KeyId="+KeyID);
}
</script>
KeyID 将为您提供一个数字,指示按下了哪个键。 您可以根据 KeyID 的值构建逻辑。您还可以使用键组合,如“cntrl+S”等。
以下代码经过编写和测试,可以针对各种按键事件执行回发。
首先将此 JavaScript 添加到您的页面。
<script type="text/javascript">
document.onkeyup = KeyCheck;
functionKeyCheck(e){
varKeyID = (window.事件) ? 事件.keyCode : e.keyCode;switch(KeyID){
大小写 113:
__doPostBack('__Page','F2') ;break;
大小写 118:__doPostBack('__Page','F7') ;
break;大小写 119:
__doPostBack('__Page','F8') ;break;
大小写 120:__doPostBack('__Page','F9') ;
break;大小写 121:
__doPostBack('__Page','F10') ;break;
大小写 122:__doPostBack('__Page','F11') ;
break;大小写 123:
__doPostBack('__Page','F12') ;break;
大小写 16:__doPostBack('__Page','Shift') ;
break;大小写 17:
__doPostBack('__Page','Ctrl') ;break;
大小写 18:__doPostBack('__Page','Alt') ;
break;大小写 19:
__doPostBack('__Page','Pause') ;break;
大小写 37:__doPostBack('__Page','ArrowLeft');
break;大小写 38:
__doPostBack('__Page','ArrowUp') ;break;
大小写 39:__doPostBack('__Page','ArrowRight');
break;大小写 40:
__doPostBack('__Page','ArrowDown') break;}
}
</script>
此脚本执行回发,并将按下的键的名称作为请求对象中“Request["__EVENTARGUMENT"]”键的值传递。
为了使“__doPostBack”工作,我们必须在页面加载期间注册回发事件引用。 以下代码说明了如何完成受保护的 voidPage_Load(objectsender,EventArgse)
{
Page.ClientScript.GetPostBackEventReference(this, "");
字符串eventArgs = Request["__EVENTARGUMENT"];if(!字符串.IsNullOrEmpty(eventArgs)){
switch(eventArgs){
大小写 "F7":DoF7();
break;
大小写 "F8":DoF8();
break;大小写 "F9":DoF8();
break;
大小写 "F10":DoF8();
break;}
}
}
根据在 Request["__EVENTARGUMENT"] 中收到的值,我们可以在回发期间采取适当的措施。