JavaScript のCtrl+によって、ユーザーが Web ページで何を検索しているかを知ることはできますか? Fしたがって、ユーザーがCtrl+Fを使用して何かを検索すると、JavaScript はこのアクション (および検索フレーズ) をキャプチャして、サーバーに送り返すことができます。
可能?どのように?
JavaScript のCtrl+によって、ユーザーが Web ページで何を検索しているかを知ることはできますか? 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);
});