PageSourceSearch

https://kingkong.co/wp-content/cache/min/1/wp-content/plugins/kk-r…/assets/js/kkra-loadmore.js?ver=1790566921

js kingkong.co collected 2026-09-28 08:24:43 UTC 5,134 bytes, 21 lines download raw bytes

1(function(){'use strict';var LIST_SELECTOR='.kkra-global:not(.kkra-global--slider)';var xhr=null;window.addEventListener('DOMContentLoaded',function(){var list=document.querySelector(LIST_SELECTOR);if(!list||typeof _kkraajaxurl==='undefined'){return}
2kkraLoadMore(list);kkraFilter(list)});function kkraLoadMore(list){list.addEventListener('click',function(e){var button=e.target.closest('.kkra-loadmore');if(!button||button.disabled){return}
3var buttonText=button.querySelector('span')||button;var label=buttonText.textContent;var page=parseInt(button.getAttribute('data-page'),10)+1;button.disabled=!0;buttonText.textContent='Loading...';fetchReviews({per_page:button.getAttribute('data-perpage'),term:button.getAttribute('data-pageterm'),page:page},function(response){button.disabled=!1;buttonText.textContent=label;if(!response||!response.html){console.error('kkra load more: page '+page+' returned no reviews',response);return}
4var holder=document.createElement('div');holder.innerHTML=response.html;bindReviews(holder);appendAll(holder.querySelectorAll('.kkra-global__item'),list.querySelector('.kkra-global__inner'));appendAll(holder.querySelectorAll('.kkra-modal--review'),list);button.setAttribute('data-page',page);if(page>=response.max_num_pages){button.parentNode.remove()}})})}
5function kkraFilter(list){var wrapper=document.querySelector('[data-kkra-filters]');var links=wrapper?wrapper.querySelectorAll('a[data-cat]'):[];if(!links.length){return}
6var perPage=wrapper.getAttribute('data-perpage')||15;var initial=wrapper.getAttribute('data-term')||'all';var current=initial;var requested=initial;history.replaceState({kkraCat:initial},'',location.href);links.forEach(function(link){link.addEventListener('click',function(e){e.preventDefault();var cat=link.getAttribute('data-cat');if(cat===requested){return}
7history.pushState({kkraCat:cat},'',link.href);applyFilter(cat)})});window.addEventListener('popstate',function(e){var cat=(e.state&&e.state.kkraCat)||catFromUrl()||initial;if(cat!==requested){applyFilter(cat)}});function applyFilter(cat){requested=cat;setActive(links,cat);list.classList.add('paginating');fetchReviews({per_page:perPage,term:cat,page:1},function(response){list.classList.remove('paginating');if(!response||typeof response.html==='undefined'){console.error('kkra filter: "'+cat+'" returned no reviews',response);requested=current;setActive(links,current);return}
8current=cat;if(parseInt(response.total_post,10)===0){list.innerHTML='<p class="none-found">No Reviews Found!</p>'}else{list.innerHTML=response.html}
9setSchema(list,response.schema_type);bindReviews(list)})}}
10function fetchReviews(data,done){var previous=xhr;var request=xhr=new XMLHttpRequest();if(previous){previous.abort()}
11var form=new FormData();form.append('action','kkra_ajax_pagination');form.append('filter',!1);Object.keys(data).forEach(function(key){form.append(key,data[key])});request.onloadend=function(){if(request!==xhr){return}
12xhr=null;var response=null;try{response=JSON.parse(request.responseText)}catch(e){console.error('kkra reviews: request returned '+request.status,request.responseText)}
13done(response)};request.open('POST',_kkraajaxurl);request.send(form)}
14function setActive(links,cat){links.forEach(function(link){link.classList.toggle('active',link.getAttribute('data-cat')===cat)})}
15function setSchema(list,type){if(type){list.setAttribute('itemscope','');list.setAttribute('itemtype','http://schema.org/'+type)}else{list.removeAttribute('itemscope');list.removeAttribute('itemtype')}}
16function catFromUrl(){var match=/[?&]cat=([^&#]*)/.exec(location.search);return match?decodeURIComponent(match[1]):''}
17function appendAll(nodes,target){nodes.forEach(function(node){target.appendChild(node)})}
18function bindReviews(scope){scope.querySelectorAll('[href*="#rm"]').forEach(function(link){link.addEventListener('click',function(){toggleFullReview(link.getAttribute('data-pid'),!0)})});scope.querySelectorAll('[href*="#rl"]').forEach(function(link){link.addEventListener('click',function(){toggleFullReview(link.getAttribute('data-pid'),!1)})});scope.querySelectorAll('[data-kkra-trigger]').forEach(function(trigger){trigger.addEventListener('click',function(e){e.preventDefault();
18var modal=document.querySelector('#modal-'+trigger.getAttribute('data-kkra-trigger'));if(!modal){return}
19var iframe=modal.querySelector('iframe');modal.classList.toggle('active');document.body.classList.toggle('kkra-modal-active');if(iframe&&iframe.getAttribute('src')==='about:blank'){iframe.setAttribute('src',iframe.getAttribute('data-src'))}})});scope.querySelectorAll('.kkra-modal').forEach(function(modal){modal.addEventListener('click',function(e){if(e.target.classList.contains('kkra-modal')||e.target.classList.contains('kkra-close')){modal.classList.remove('active');document.body.classList.remove('kkra-modal-active')}});modal.classList.remove('hide')})}
20function toggleFullReview(postID,showFull){var excerpt=document.getElementById('sub-'+postID);var full=document.getElementById('full-'+postID);if(!excerpt||!full){return}
21excerpt.classList.toggle('active',!showFull);full.classList.toggle('active',showFull)}})()

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.