5

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

可能?どのように?

4

3 に答える 3

1

いいえ、できません。一部ブラウザでは、キーの組み合わせCtrl+をキャッチできFますが、ユーザーが検索したものをスパイすることはできません。Ctrl他のブラウザでは、 +をまったくキャッチできませんF

慰めの場合は、IE6で使用できるセキュリティ上の欠陥がある可能性があります。

于 2013-01-07T00:19:11.330 に答える
1

いいえ。セキュリティ上の理由から、ページ外のブラウザのUI要素にアクセスすることはできません。Ctrl+をキャプチャFして、自分で処理することもできます。ただし、もちろん、ブラウザ自体のUI要素とは異なって見えます。

于 2013-01-07T00:21:36.077 に答える
1

場合によっては役立つ回避策を見つけました。

ドキュメントとスクロール可能な要素は、常に次に検索された場所までスクロールしていることに注意してください。これを利用して、「非表示の」スクロール可能な要素を作成し、スクロールするのを待つことができます。スクロールすると、スクロールした位置を読み取り、一致した単語を取得できます。

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);
});
于 2014-10-14T16:44:11.183 に答える