js中如何触发组合键执行函数?

JavaScript08

js中如何触发组合键执行函数?,第1张

因为IE有ctrl+b的快捷键.所以你这里怎么写都不可能替代它.就像alt+f4.你见过哪个软件用alt+f4关不了?

所以你应该选择不是快捷键的组合键来实现.这里我用CTRL+Q给你写的例子.你看看吧:

<input type=text id="txt" onkeyup="test()">

<script>

<!--

function test(){

if(event.ctrlKey&&window.event.keyCode==81){

myalert()

}

}

function myalert(){

alert("CTRL+Q")

}

//-->

</script>

首先 control 键是 UNIX 系统很久以前就有的一个保留键,由于那时还没有图形用户界面(GUI),所以它多用来控制命令行工具,比如著名的 control-c 快捷键,它可以发送一个 SIGINT 信号来中断当前运行的进程。

Mac OS X 操作系统是基于 UNIX 操作系统的,所以也保留了 UNIX 强大的命令行功能,也就是现在的“终端”,而之前在 UNIX 中的与 control 有关的快捷键也就都被保留了下来。所以你现在在终端中按下 control-c 的话,仍然会终止正在运行的进程。

然而,作为一个现代的操作系统, Mac OS X 也支持图形界面(GUI)。所以它需要另一套系统来作为图形界面的快捷键,这样就有了 command 键。比如 command-c 就是复制。这样可以避免和命令行界面快捷键的冲突。如果将 command 和 control 合并的话,按下 control-c 等组合键时,就无法判断用户是要复制还是要中段进程。

参考一下吧

,稍作修改就可以满足1、2两个条件

但是IE的键盘监听最多只能作用于document上(window我试过不行)

如果内嵌了iframe并且你的焦点在iframe上,那么按键无效

<script>

document.onkeydown

=

function()

{

var

oEvent

=

window.event

if

(oEvent.keyCode

==

13

&&

oEvent.ctrlKey)

{

alert("你按下了ctrl+enter")

}

}

</script>