是否可以通过JavaScript 中的Ctrl+来了解我的用户在我的网页上搜索的内容?F因此,当用户使用Ctrl+F搜索某些内容时,JavaScript 可以捕获此操作(和搜索短语)并将其发送回服务器。
可能的?如何?
是否可以通过JavaScript 中的Ctrl+来了解我的用户在我的网页上搜索的内容?F因此,当用户使用Ctrl+F搜索某些内容时,JavaScript 可以捕获此操作(和搜索短语)并将其发送回服务器。
可能的?如何?
不,不可能。在某些浏览器上,您可以捕获组合键Ctrl+ F,但您无法窥探用户搜索的内容。在其他浏览器上,您根本无法捕捉Ctrl+ F。
如果有什么安慰的话,您可能会在 IE6 上使用一个安全漏洞。
不可以。出于所有安全原因,您永远不能访问页面外的浏览器 UI 元素。您可以捕获Ctrl+F并自行处理。但是,当然,它看起来与浏览器自己的 UI 元素不同。
我刚刚找到了一种在某些情况下可能会有所帮助的解决方法。
请注意,文档和可滚动元素总是滚动到下一个搜索到的位置——我们可以利用它并创建一个“隐藏”的可滚动元素并等待它滚动。当它滚动时,您可以读取它滚动到的位置并获得匹配的单词。
http://jsfiddle.net/oz6gum90/6/
HTML:
<div id="hiddenScrollableContent">
<div></div> <!-- first element must be empty -->
<div>car</div>
<div>cat</div>
...
</div>
CSS:
#hiddenScrollableContent{
overflow: scroll;
position:absolute;
height:20px; /* can't be zero ! */
opacity:0.01; /* can't be zero ! */
pointer-events: none;
}
#hiddenScrollableContent div{
height: 100px;
}
JS:
$('#hiddenScrollableContent').scroll(function(e){
var top = $(this).scrollTop();
if (top==0)
return; //prevents endless loop
var index = Math.round(top / 100);
var element = $('div', this).eq(index);
var elementsText = element.text();
$(this).scrollTop(0);
console.log('top:'+top, 'index:'+index);
$('span').text(elementsText);
});