From 0e7b6c9a032d67bf5cbdcfc062d8466c18a62abd Mon Sep 17 00:00:00 2001 From: Dalf Date: Wed, 11 Dec 2019 14:34:25 +0100 Subject: [mod] infinite scroll: XHR requests are sent with the header "Accept: text/html". Fix https://github.com/searx/searx-docker/issues/16 --- searx/static/plugins/js/infinite_scroll.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'searx/static/plugins') diff --git a/searx/static/plugins/js/infinite_scroll.js b/searx/static/plugins/js/infinite_scroll.js index 1a95756a0..db84a6908 100644 --- a/searx/static/plugins/js/infinite_scroll.js +++ b/searx/static/plugins/js/infinite_scroll.js @@ -5,12 +5,18 @@ $(document).ready(function() { var formData = $('#pagination form:last').serialize(); if (formData) { $('#pagination').html('
'); - $.post('./', formData, function (data) { - var body = $(data); - $('#pagination').remove(); - $('#main_results').append('
'); - $('#main_results').append(body.find('.result')); - $('#main_results').append(body.find('#pagination')); + $.ajax({ + type: "POST", + url: './', + data: formData, + dataType: 'html', + success: function(data) { + var body = $(data); + $('#pagination').remove(); + $('#main_results').append('
'); + $('#main_results').append(body.find('.result')); + $('#main_results').append(body.find('#pagination')); + } }); } } -- cgit v1.2.3 From 0ae86cd1685d244c83a6080a7816365096ab06f8 Mon Sep 17 00:00:00 2001 From: Nick Espig Date: Tue, 4 Jun 2019 19:16:19 +0200 Subject: Fix not jumping to results loaded by infinite scroll Infinite scroll adds a `hr` tag to split up the sections loaded by it. The vim bindings `j` and `k`, which jump to the next and previous result respectively, search for a **direct** sibling with the class `result`. With the `hr` between results a direct sibling cannot be found. To fix this we remove the restriction of it having to be a direct sibling. --- searx/static/plugins/js/vim_hotkeys.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'searx/static/plugins') diff --git a/searx/static/plugins/js/vim_hotkeys.js b/searx/static/plugins/js/vim_hotkeys.js index 13bd070e0..b0f265cb5 100644 --- a/searx/static/plugins/js/vim_hotkeys.js +++ b/searx/static/plugins/js/vim_hotkeys.js @@ -125,6 +125,14 @@ $(document).ready(function() { } }); + function nextResult(current, direction) { + var next = current[direction](); + while (!next.is('.result') && next.length !== 0) { + next = next[direction](); + } + return next + } + function highlightResult(which) { return function() { var current = $('.result[data-vim-selected]'); @@ -157,13 +165,13 @@ $(document).ready(function() { } break; case 'down': - next = current.next('.result'); + next = nextResult(current, 'next'); if (next.length === 0) { next = $('.result:first'); } break; case 'up': - next = current.prev('.result'); + next = nextResult(current, 'prev'); if (next.length === 0) { next = $('.result:last'); } -- cgit v1.2.3 From 65cae857354a5268253e40556153e994fa747e3d Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Mon, 23 Mar 2020 13:05:19 +0100 Subject: [fix] load new page with infinite scroll if there is no scrollbar - fixes #759 --- searx/static/plugins/js/infinite_scroll.js | 50 ++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 17 deletions(-) (limited to 'searx/static/plugins') diff --git a/searx/static/plugins/js/infinite_scroll.js b/searx/static/plugins/js/infinite_scroll.js index db84a6908..9930880e3 100644 --- a/searx/static/plugins/js/infinite_scroll.js +++ b/searx/static/plugins/js/infinite_scroll.js @@ -1,24 +1,40 @@ +function hasScrollbar() { + var root = document.compatMode=='BackCompat'? document.body : document.documentElement; + return root.scrollHeight>root.clientHeight; +} + +function loadNextPage() { + var formData = $('#pagination form:last').serialize(); + if (formData) { + $('#pagination').html('
'); + $.ajax({ + type: "POST", + url: './', + data: formData, + dataType: 'html', + success: function(data) { + var body = $(data); + $('#pagination').remove(); + $('#main_results').append('
'); + $('#main_results').append(body.find('.result')); + $('#main_results').append(body.find('#pagination')); + if(!hasScrollbar()) { + loadNextPage(); + } + } + }); + } +} + $(document).ready(function() { var win = $(window); + if(!hasScrollbar()) { + loadNextPage(); + } win.scroll(function() { + $("#pagination button").css("visibility", "hidden"); if ($(document).height() - win.height() - win.scrollTop() < 150) { - var formData = $('#pagination form:last').serialize(); - if (formData) { - $('#pagination').html('
'); - $.ajax({ - type: "POST", - url: './', - data: formData, - dataType: 'html', - success: function(data) { - var body = $(data); - $('#pagination').remove(); - $('#main_results').append('
'); - $('#main_results').append(body.find('.result')); - $('#main_results').append(body.find('#pagination')); - } - }); - } + loadNextPage(); } }); }); -- cgit v1.2.3