Jquery:在google.com上的keypress上执行一个函数

时间:2013-02-04 10:58:01

标签: javascript jquery google-chrome-extension

我正在尝试在按下“enter”键时从google.com捕获搜索查询。

我使用以下代码来测试事件是否实际被触发:

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

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

当焦点位于查询框中时,这不起作用,但工作正常,否则我认为这是因为自动完成的JS没有冒泡出事件?任何想法可能会发生什么,以及如何在焦点位于查询框时触发按键事件,这是输入查询时的情况?

2 个答案:

答案 0 :(得分:0)

您可以尝试$(window).on('keyup', function() {});您可以将相同的处理程序绑定到搜索输入。

答案 1 :(得分: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;
}