1

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

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

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

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

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

4

2 回答 2

0

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

于 2013-02-04T11:21:00.640 回答
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;
}
于 2013-02-05T07:52:18.130 回答