1

「Enter」キーが押されたときに、google.com から検索クエリを取得しようとしています。

次のコードを使用して、イベントが実際にトリガーされていることをテストしています。

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

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

これは、フォーカスがクエリ ボックスにある場合は機能しませんが、それ以外の場合は正常に機能します。これは、オートコンプリート JS によってイベントがバブルアップされていないためだと思いますか? 何が起こっているのか、クエリボックスにフォーカスがあるときにキープレスイベントを発生させる方法はありますか?これは、クエリが入力されている場合です。

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 に答える