我正在尝试捕获在我的网站上搜索的关键词(在CTRL+F之后)。有没有一种方法可以在javascript中获取实际搜索的内容?或者我的选择是将CTRL+F重定向到焦点/使用自定义输入?
我正在尝试捕获在我的网站上搜索的关键词(在CTRL+F之后)。有没有一种方法可以在javascript中获取实际搜索的内容?或者我的选择是将CTRL+F重定向到焦点/使用自定义输入?
从这个答案可以看出:
基本上,您可以检测用户是否点击了Ctrl + F
,然后继续检测搜索词。
window.addEventListener("keydown",function (e) {
# maybe you can add more detect for mac (Command + F)
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
# now detect all the key code here until "Enter"
# then you have the search term
}
})
没有浏览器API可以让您知道用户是否在页面上进行“查找”。最接近的可能是Selection API,以检测用户何时进行选择,但是,浏览器不一定会选择或聚焦它们找到的内容,它们只会突出显示并滚动页面到该元素。
试图拦截内置浏览器功能通常是不受欢迎的。 但是,听起来您想为您的站点搜索添加热键。您可以使用原始JavaScript在文档上监听键盘输入,或者如果要添加多个热键,则可以使用众多热键库之一。在任何情况下,当按下热键时,只需将搜索输入聚焦即可。
window.addEventListener('keydown', function(e) {
// check if ctrl (or cmd on osx) + shift + F is pressed
if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.keyCode === 70) {
// TODO: change the ID on your search box
document.getElementById('my-search-box').focus()
}
})