NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Next page KP // @namespace http://use.i.E.your.homepage/ // @version 0.1 // @description Loads next page when end of page is reached // @match *://www.kupujemprodajem.com/* // @require http://code.jquery.com/jquery-2.1.1.min.js // @copyright 2016+, You // @author neemanjabuge@gmail.com // ==/UserScript== jQuery.noConflict(); (function ($) { console.log('--- Next page script ----'); var end = false; var pages = [ ]; var loader = $('<div/>', { html: 'Loading...' }) .css({ position: 'fixed', bottom: 0, right: 0, background: 'white', color: 'gray', padding: '10px', 'font-size': '16px', display: 'none', 'z-index': 1000, border: '1px dashed red' }) .appendTo($('body')); var gotoTop = $('<div/>', { html: '↑' }) .css({ position: 'fixed', bottom: 0, right: '85px', background: 'white', border: '1px dashed red', color: 'gray', padding: '10px', width: '50px', 'text-align': 'center', 'font-size': '16px', cursor: 'pointer' }) .appendTo($('body')) .on('click', function () { $(window) .scrollTop(0); }); var sites = { 'kupujemprodajem': { link: function ($page) { var f = document.forms.pagingList; var currentPageLink = $page.find('li.this-page').last(); //check if there is next page (link sledeca) if (!currentPageLink.next().is('li')){ return null; } currentPage = currentPageLink.html(); if (currentPage) { f.elements['data[page]'].value = parseInt(currentPage) + 1; return 'search.php?' + $(f) .serialize(); } else { return null; } }, content: '#searchResultTableHolder', specific: function ($currentPage, $loadedPage) { //because pagging is out of content (after content in dom) this change is needed //to know on which page you are currently on var pagging = $loadedPage.find('.pageBarHolder').last()[0].outerHTML; $currentPage .find(this.content) .append(pagging); $currentPage.find('.pageBarHolder').last().html(pagging); } } }; var site = null, $lastLoadedPage = null, $win = $(window), win = window, $doc = $(document), winHeight = window.innerHeight, //content left to trigger loading, 0.8 of current viewport height bottomTrigger = winHeight * 0.8; var contentHeightToScroll = function () { //content left to scroll, under the viewport return $doc.height() - ($win.scrollTop() + winHeight); }; //next image script for kupujemprodajme $('body').on('keydown', function (e) { switch(e.keyCode) { case 37: $('.big-left-arrow').click(); break; case 39: $('.big-right-arrow').click(); break; } }); $win.scroll(function () { if (contentHeightToScroll() < bottomTrigger) { if (!site) { $.each(sites, function (siteKey, siteData) { if (location.href.indexOf(siteKey) !== - 1) { site = siteData; return false; } }); } var url; if ($.type(site.link) == 'string') { var link = $(site.link) .last(); if (link.length) { url = link.attr('href'); } } else { url = site.link($lastLoadedPage || $('body')); } if (url) { if (pages.indexOf(url) != - 1) { return ; } console.log('load: ' + url); loader.show(); pages.push(url); $.get(url, function (data) { loader.hide(); console.log('done'); //debugger; console.log($(site.content)); data = $(data); $lastLoadedPage = data; data.find(site.content).find('script').remove(); $(site.content).append(data.find(site.content).children()); if (site.specific) { site.specific($('body'), $lastLoadedPage); } }); } } }); }(jQuery));