PageSourceSearch

https://wrestdag.ru/wa-apps/blog/js/jquery.pageless2.js?v=2.0.2.95

js wrestdag.ru collected 2026-09-26 05:43:29 UTC 5,000 bytes, 146 lines download raw bytes

1(function ($) {
2    var currentPage = 2, container = window, $container = $(container);
3    var loading = false;
4
5    var settings = {
6        url: '',
7        target: '.b-stream',
8        count: 10,
9        scroll: null,
10        times: null,
11        stop: null,
12        bottom_distance: 80,
13        content_distance: 120,
14        auto: true,
15        beforeLoad: null,
16        afterLoad: null,
17        renderContent: null,
18        paging_selector: null,
19        pageless_wrapper: null
20    };
21    settings.times = parseInt(settings.times, 10);
22
23    var start = function () {
24        var pageless_wrapper = settings.pageless_wrapper;
25
26        pageless_wrapper.show();
27        if (settings.paging_selector) {
28            $(settings.paging_selector).hide();
29        }
30        pageless_wrapper.find('a.pageless-link').on('click', function () {
31            if (!isNaN(settings.times)) {
32                settings.times = Math.max(settings.times + 1, 1);
33            }
34            watch(true);
35            return false;
36        });
37        $container.bind('scroll.pageless resize.pageless', watch).trigger('scroll.pageless');
38
39    };
40
41    var stop = function () {
42        $container.unbind('.pageless');
43        if (settings.stop && (typeof (settings.stop) == 'function')) {
44            settings.stop.apply(this, []);
45        }
46
47    };
48
49    var scroll = function () {
50        // show loader
51        var pageless_wrapper = settings.pageless_wrapper;
52        var handler = pageless_wrapper.find('.pageless-link');
53        var progress = pageless_wrapper.find('.pageless-progress');
54        if (isNaN(settings.times) || settings.times > 0) {
55            if (progress.length) {
56                handler.hide();
57                progress.show();
58            } else {
59                handler.replaceWith('<i class="icon16 loading"></i>' + handler.text());
60            }
61            loading = true;
62
63            if (typeof settings.beforeLoad === 'function') {
64                settings.beforeLoad();
65            }
66            $.get(settings.url, {
67                page: currentPage++
68            }, function (response, textStatus, jqXHR) {
69                var html = response.data ? response.data.content : response;
70                if (typeof settings.prepareContent === 'function') {
71                    html = settings.prepareContent(html);
72                }
73                if (typeof settings.renderContent === 'function') {
74                    settings.renderContent(html, $(settings.target));
75                } else {
76                    pageless_wrapper.remove();
77                    $(settings.target).append(html);
78                    pageless_wrapper = settings.pageless_wrapper = $(settings.target + ' .pageless-wrapper');
79                }
80                if (settings.scroll && (typeof (settings.scroll) == 'function')) {
81                    settings.scroll.apply(this, [ response, settings.target ]);
82                }
83                loading = false;
84                if (typeof settings.afterLoad === 'function') {
85                    settings.afterLoad();
86                }
87                watch();
88            });// ,'html');
89        } else {
90            handler.show();
91            progress.hide();
92            loading = false;
93        }
94        settings.times -= 1;
95    };
96    // distance to end of the container
97    var distanceToBottom = function () {
98        return (container === window) ?
99            ($(document).height() - $container.scrollTop() - $container.height())
100            :
101            ($container[0].scrollHeight - $container.scrollTop() - $container.height());
102    };
103
104    var distanceFromContent = function () {
105        var handler = settings.pageless_wrapper;
106        if (handler.length) {
107            return $(window).height() - handler.position().top + $container.scrollTop();
108        }
109        return 0;
110    };
111
112    var watch = function (force) {
113        if (currentPage >= parseInt(settings.count) + 1) {
114            stop.apply(this, []);
115        } else if (!loading) {
116            var apply = false;
117            if (force === true) {
118                apply = true;
119            } else if (settings.auto) {
120                apply = (distanceToBottom() < settings.bottom_distance) || (distanceFromContent() > settings.content_distance);
121            }
122
123            if (apply) {
124                scroll.apply(this, []);
125            }
126        }
127    };
128
129    $.pageless = function (option) {
130        if (option == 'start' || option == 'refresh') {
131            start.apply(this, []);
132        }
133        if (option == 'url') {
134            settings.url = arguments[1];
135        }
136        if ($.isPlainObject(option)) {
137            $.extend(settings, option);
138            if (settings.pageless_wrapper === null) {
139                settings.pageless_wrapper = $(settings.target + ' .pageless-wrapper');
140            } else if (settings.pageless_wrapper === false) {
141                settings.pageless_wrapper = $();
142            }
143            start.apply(this, []);
144        }
145    };
146})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.