设置网页快捷键原理

在很多网页中,可以使用快捷来完成一定的动作,比如discuz论坛的“完成后可按 Ctrl+Enter 发布”功能!

  这样的功能是用JavaScript中的event属性的KeyCode方法完成,利用onKeyDown事件进行驱动。
  在JavaScript中,可以通过keyCode属性来得到用户所按键的ASSCII码值。具体对应关系可以查ASSCII码表。
例子:

CODE:   [Copy to clipboard]
<SCRIPT LANGUAGE="JavaScript">
<!--
function hotkey()
{
var a=window.event.keyCode;
if(a==65)
{
alert("你按了a键吧");
}
}// end hotkey

document.onkeydown = hotkey; //当onkeydown 事件发生时调用hotkey函数
//-->
</SCRIPT>


  另外,在快捷键的使用中,Alt、Ctrl、shift等辅助键也是经常用到的,可以通过altKey、ctrlKey、shiftKey这三个属性来判断Alt、Ctrl、shift键的状态
比如event.ctrlKey的值为真,就说明用户按下了Ctrl键。
例子:
CODE:   [Copy to clipboard]
<SCRIPT LANGUAGE="JavaScript">
<!--
function hotkey()
{

if(event.ctrlKey)
{
alert("你按了Ctrl键吧");
}
}// end hotkey

document.onkeydown = hotkey; //当onkeydown 事件发生时调用hotkey函数
//-->
</SCRIPT>


  可以组合起来,形成真正的快捷键,将执行语句换为你要的效果就可以了。
CODE:   [Copy to clipboard]
<SCRIPT LANGUAGE="JavaScript">
<!--
function hotkey()
{
var a=window.event.keyCode;
if((a==65)&&(event.ctrlKey))
{
alert("你按了ctrl+a键吧");
}
}// end hotkey

document.onkeydown = hotkey; //当onkeydown 事件发生时调用hotkey函数
//-->
</SCRIPT>


  document.onkeydown = hotkey 语句是在全页面中,当用户按下键时,调用hotkey函数,也许你希望在页面局部实现快捷键功能,那么,你可以仿照下面这样做(记得删除"document.onkeydown = hotkey"语句):


CODE:   [Copy to clipboard]
<textarea rows="7" cols="90" name="message" onKeyDown="javascript: hotkey();" tabindex="2"></textarea>

  这样,只有当光标焦点在文本框中才能使用快捷键。

 

上一篇:如何通过js脚本复制网页上的一个表格?
下一篇:JavaScript极速狂飙:组合拼接字符串的效率
最新评论 更多评论
呵呵,一起学习!谢谢支持小超
——小超评论于2005年12月24日 20:39:34
今天学到一点点 谢谢
——雨后的风评论于2005年12月22日 22:11:02

您还没有登录,暂时不能发表评论,请先登录!

[登录] [注册]

 

 

 

<script language="JavaScript" type="text/javascript">
<!--
// targetObj: 目标对象,如果满足快捷键条件,触发目标对象的click事件
// ctrlKey: 是否按住了Ctrl组合键
// shiftKey: 是否按住了Shift组合键
// altKey: 是否按住了Alt组合键
// keycode: 按键对应的数值
function Hotkey(event, targetObj, ctrlKey, shiftKey, altKey, keycode)
{
   if (targetObj &&
       event.ctrlKey == ctrlKey &&
       event.shiftKey == shiftKey &&
       event.altKey == altKey &&
       event.keyCode == keycode
      )
       targetObj.click();
}

function fnKeyup(event)
{
    var b = document.getElementById("myButton");
    Hotkey(event, b, false, false, false, 49);
}

if (document.addEventListener)
    document.addEventListener("keyup",fnKeyup,true);
else
    document.attachEvent("onkeyup",fnKeyup);

//-->
</script>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值