2013-02-04 19 views
1

我試圖在按下「enter」鍵時從google.com捕獲搜索查詢。Jquery:在google.com上執行keypress上的功能

我使用下面的代碼來測試該事件實際上是被觸發:

$(document).keypress(function(e) { 

    if(e.which == 13) { 
     alert('You pressed enter!'); 
    } 
}); 

當焦點在查詢框中這並不工作,但工作得很好,否則我想這是因爲事件不會被自動完成的JS冒出來?任何想法會發生什麼,以及當焦點位於查詢框時,如何在輸入查詢時觸發按鍵事件?

+0

你有沒有嘗試設置輸入框,而不是文件的按鍵事件? '$('#gbqfq')...' – Kirween

回答

0

您可以嘗試$(window).on('keyup', function() {});您可以將相同的處理程序綁定到搜索輸入。

0

使用「hashchange」事件 它觸發「自動完成JS」時被觸發

$(window).on("hashchange", function() { 
    var query = getKeywordsFromUrl(document.location.href); 
}); 

function getKeywordsFromUrl(href) { 
    var reStr = "google.com/search.*[&?]q=(.*?)(&.*)?$"; 
    var rx = new RegExp(reStr, 'm'); 
    if (rx.test(href)) { 
     var parts = rx.exec(href); 
     if (parts[1]) { 
      var terms = decodeURI(parts[1]).split("+"); 
      return terms; 
     } 
    } 
    return null; 
} 
+0

那麼,這樣的事情? '$(窗口)。在( 「hashchange」 功能(E){ 如果(e.which == 13){ 警報( 「你按下輸入!」);} });' 不幸的是,這件事打破了。我可以在這裏傳入什麼數據?我在Jquery API文檔中找不到有關hashchange的任何信息。你能指點我一些嗎?謝謝 – Cygorger

+0

不需要檢查「輸入」代碼 – belykh

+0

你應該從url提取查詢 – belykh