2013-01-07 192 views
3

是否有可能通過JavaScript中的Ctrl + F知道我的用戶在我的網頁上搜索的內容?因此,當用戶使用Ctrl + F搜索某些內容時,JavaScript可以捕獲此操作(和搜索短語)並將其發送回服務器。跟蹤JavaScript使用Ctrl + F?

可能嗎?怎麼樣?

+0

是的,這是可能的。你有什麼特別的麻煩? –

+0

我不知道如何。我在谷歌搜索它都是觸發Ctrl + F鍵,而不是跟蹤它。通過google找到 –

+1

:http://stackoverflow.com/questions/93695/best-cross-browser-method-to-capture-ctrls-with-jquery(用S代替S密鑰)。這可以跟蹤擊鍵 - 跟蹤他們在搜索框中輸入的內容是否超出javascripts的能力。 – jbabey

回答

1

不,不可能。在一些瀏覽器,你可以捕獲組合CTRL+F,但你不能窺探用戶搜索的內容。在其他瀏覽器上,您根本無法捕獲到CTRL+F

如果有任何安慰,可能會有一個安全漏洞,您可以使用IE6。

1

不可以,並且出於所有安全原因,不應該有權訪問頁面外的瀏覽器UI元素。你可以捕捉Ctrl-F並自己處理它。但是,當然,它會看起來不同於瀏覽器自己的UI元素。

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); 
});