Mac Safari "command + c" 和 jquery 按键
Mac Safari "command + c" and jquery keypress
我正在尝试实现一项功能,以便在 "body"
中的任何位置键入时聚焦 "Search"
字段。正如您在 jsfiddle 演示中看到的那样,一切正常。但是在 MAC Safari
加工中,如果我输入 "Command + C"
它将聚焦到禁用复制文本的搜索字段。在 Windows
"Ctrl + C"
中工作正常。
如何避免"Command + C"
关注"Search"
领域
在 Mac 上使用 Chrome 进行了测试,工作正常。在 Safari 上,console.log("keyCode:"+e.keyCode) 按下 'c' 键时记录 99:
试试下面的代码:
https://jsfiddle.net/pengyanb/s8w5do2q/1/
jQuery(document).ready(function($){
$("body").keypress(function(e) {
var nodeName = e.target.nodeName,
charCode = e.which || e.keyCode,
charStr = String.fromCharCode(charCode);
console.log("keyCode:"+e.keyCode);
if ((e.keyCode == 67 || e.keyCode==99) && (e.ctrlKey || e.metaKey)){
console.log("keydown-Copy");
return;
}
console.log(e.keyCode,"keypress");;
if ( nodeName == 'INPUT' || nodeName == 'TEXTAREA' ) {
return;
}
if (!(/[a-z0-9]/i.test(charStr))) {
return;
}
$("#search").focus();
});
});
<div class="searchbg">
<div>
Search : <input type="text" id="search" />
</div>
<div>
<div>
Name : <input type="text" id="name" />
</div>
<div>
Address : <textarea name="address"></textarea>
</div>
Try Copy Me
</div>
</div>
我正在尝试实现一项功能,以便在 "body"
中的任何位置键入时聚焦 "Search"
字段。正如您在 jsfiddle 演示中看到的那样,一切正常。但是在 MAC Safari
加工中,如果我输入 "Command + C"
它将聚焦到禁用复制文本的搜索字段。在 Windows
"Ctrl + C"
中工作正常。
如何避免"Command + C"
关注"Search"
领域
在 Mac 上使用 Chrome 进行了测试,工作正常。在 Safari 上,console.log("keyCode:"+e.keyCode) 按下 'c' 键时记录 99: 试试下面的代码:
https://jsfiddle.net/pengyanb/s8w5do2q/1/
jQuery(document).ready(function($){
$("body").keypress(function(e) {
var nodeName = e.target.nodeName,
charCode = e.which || e.keyCode,
charStr = String.fromCharCode(charCode);
console.log("keyCode:"+e.keyCode);
if ((e.keyCode == 67 || e.keyCode==99) && (e.ctrlKey || e.metaKey)){
console.log("keydown-Copy");
return;
}
console.log(e.keyCode,"keypress");;
if ( nodeName == 'INPUT' || nodeName == 'TEXTAREA' ) {
return;
}
if (!(/[a-z0-9]/i.test(charStr))) {
return;
}
$("#search").focus();
});
});
<div class="searchbg">
<div>
Search : <input type="text" id="search" />
</div>
<div>
<div>
Name : <input type="text" id="name" />
</div>
<div>
Address : <textarea name="address"></textarea>
</div>
Try Copy Me
</div>
</div>