有没有一种方法可以在JavaScript中捕获网页搜索词(CTRL + F)?

5

我正在尝试捕获在我的网站上搜索的关键词(在CTRL+F之后)。有没有一种方法可以在javascript中获取实际搜索的内容?或者我的选择是将CTRL+F重定向到焦点/使用自定义输入?


我不这么认为,这纯粹是客户端的问题。 - roottraveller
2个回答

0

这个答案可以看出:

基本上,您可以检测用户是否点击了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
    }
})

0

没有浏览器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()
  }
})

该用户似乎并不想为其网站的搜索栏添加热键。他们想知道当您在页面中使用ctrl-f查找术语“pickles”时的情况。就像当您使用通常内置于浏览器的ctrl-f搜索“pickles”时,他们想要识别该操作。可能他们正在进行A/B测试或其他一些事情,并希望获取有关用户行为的数据。 - Him

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接