我有以下专注于输入字段的Javascript / jQuery代码。
window.addEventListener("keydown",function (e) {
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
e.preventDefault();
$('#search').focus();
}
})
但是我想这样做,以便如果用户在搜索字段的焦点后再次按下Ctrl + F,它将打开默认的浏览器搜索窗口。
我的想法是将代码更改为:
window.addEventListener("keydown",function (e) {
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)){
if($('#search').not(":focus")) {
e.preventDefault();
console.log("Search is not in focus");
$('#search').focus();
} else {
console.log("Default action of CtrlF")
return true;
}
}
})
但这不起作用(它总是认为搜索不是焦点,即使它是)
答案 0 :(得分:3)
试试这个
$(document).ready(function(){
window.addEventListener("keydown",function (e) {
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)){
if($('#search').is(":focus")) {
console.log("Default action of CtrlF")
return true;
} else {
e.preventDefault();
console.log("Search is not in focus");
$('#search').focus();
}
}
})
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="search" id="search" />
&#13;