CTRL + C 和关键字键 C ,两个事件同时工作 JavaScript || Jquery
CTRL + C and keyword key C , both events work at same time JavaScript || Jquery
因为我正在为我的网站创建关键字快捷方式,例如按 C 键,它会将我重定向到我想要的任何页面。
但是问题出现了,当我按下 Ctrl+C 组合键时,它会为我复制文本,但也会将我重定向到其他页面。
我尝试创建一个小演示:
document.onkeyup = function(e) {
var e = e || window.event;
if ((e.which == 67)) {
alert("C key is pressed");
}else if ((e.ctrlKey) && (e.which == 67)) {
alert("Text Copied");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>
希望您能理解。
感谢您的光临。
更改您的代码,以便在检查重定向键之前先检查 Ctrl + C。
此外,请注意 KeyboardEvent#which
已弃用,因此您应该改用 KeyboardEvent#key
:
document.onkeyup = function(e) {
e = e || window.event;
if (e.ctrlKey && e.key === 'c') {
alert("Text copied");
}else if (e.key === 'c') {
alert("C key is pressed");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>
然而,这并不总是奏效。
如果您执行以下操作:
Ctrl down
C down
C up
Ctrl up
...那么它将起作用,但如果序列是(这也会触发复制操作):
Ctrl down
C down
Ctrl up
C up
...那就不会了
为什么?
问题出在 keyup
事件本身。由于事件对象表示事件发出时的键盘状态,因此 keyup
在 C 被 释放时检查修改键 .
但是,由于修改键通常必须在之前被按下,所以检查应该在按下[=]时进行63=].
因此,您必须改用 keydown
事件:
document.onkeydown = function(e) {
e = e || window.event;
if (e.ctrlKey && e.key === 'c') {
alert("Text copied");
}else if (e.key === 'c') {
alert("C key is pressed");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>
因为我正在为我的网站创建关键字快捷方式,例如按 C 键,它会将我重定向到我想要的任何页面。
但是问题出现了,当我按下 Ctrl+C 组合键时,它会为我复制文本,但也会将我重定向到其他页面。
我尝试创建一个小演示:
document.onkeyup = function(e) {
var e = e || window.event;
if ((e.which == 67)) {
alert("C key is pressed");
}else if ((e.ctrlKey) && (e.which == 67)) {
alert("Text Copied");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>
希望您能理解。
感谢您的光临。
更改您的代码,以便在检查重定向键之前先检查 Ctrl + C。
此外,请注意 KeyboardEvent#which
已弃用,因此您应该改用 KeyboardEvent#key
:
document.onkeyup = function(e) {
e = e || window.event;
if (e.ctrlKey && e.key === 'c') {
alert("Text copied");
}else if (e.key === 'c') {
alert("C key is pressed");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>
然而,这并不总是奏效。
如果您执行以下操作:
Ctrl down
C down
C up
Ctrl up
...那么它将起作用,但如果序列是(这也会触发复制操作):
Ctrl down
C down
Ctrl up
C up
...那就不会了
为什么?
问题出在 keyup
事件本身。由于事件对象表示事件发出时的键盘状态,因此 keyup
在 C 被 释放时检查修改键 .
但是,由于修改键通常必须在之前被按下,所以检查应该在按下[=]时进行63=].
因此,您必须改用 keydown
事件:
document.onkeydown = function(e) {
e = e || window.event;
if (e.ctrlKey && e.key === 'c') {
alert("Text copied");
}else if (e.key === 'c') {
alert("C key is pressed");
}
};
body {
background-color: #fff;
}
h5{
text-align:center;
font-size:20px;
font-weigt:bold;
}
<h5>Creating Shortcut for Website</h5>
<p>By clicking on <q>C</q> key on Keyboard, your page will reload</p>