Advertisement
EduardET

js errors

Jan 17th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.         function cleanup_address_bar() {
  3.             try {
  4.                 var url = location.href
  5.                     .replace(/&wphyperspeed=[0-9]+/, '')
  6.                     .replace(/\?wphyperspeed=[0-9]+&/, '?')
  7.                     .replace(/\?wphyperspeed=[0-9]+/, '');
  8.                 window.history.replaceState('object', document.title, url);
  9.             } catch (e) {
  10.             }
  11.         }
  12.  
  13.         function get_cookie(r) {
  14.             function value(e) {
  15.                 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
  16.                 try {
  17.                     return e = decodeURIComponent(e.replace(/\+/g, " ")), e
  18.                 } catch (e) {
  19.                 }
  20.             }
  21.  
  22.             var p = r ? void 0 : {},
  23.                 s = document.cookie ? document.cookie.split("; ") : [];
  24.             for (var m = 0; m < s.length; m++) {
  25.                 var v = s[m].split("="),
  26.                     k = decodeURIComponent(v.shift()),
  27.                     l = v.join("=");
  28.                 if (r && r === k) {
  29.                     p = value(l);
  30.                     break
  31.                 }
  32.                 r || void 0 === (l = value(l)) || (p[k] = l)
  33.             }
  34.             return p
  35.         }
  36.  
  37.         function is_woocommerce(){
  38.             return !!document.querySelector('meta[name="generator"][content~="WooCommerce"]');
  39.         }
  40.  
  41.         function is_woocommerce_protected(link){
  42.             //don't cache cart related stuff
  43.             if (!!link.pathname.match(/\/(cart|checkout|my-account)/)) {
  44.                 return true;
  45.             }
  46.             //don't cache add-to-cart links
  47.             return !!link.search.match(/add-to-cart/);
  48.         }
  49.  
  50.         function is_headless(){
  51.             try {
  52.                 var user_agent = navigator.userAgent;
  53.                 if (!!user_agent.match(/Google Page Speed Insights/)){
  54.                     return true;
  55.                 }
  56.                 if (!!user_agent.match(/Linux x86_64/)){
  57.                     return true;
  58.                 }
  59.             }catch(e){}
  60.             return false;
  61.         }
  62.  
  63.         function is_file_link(link){
  64.             try{
  65.                 var parts = link.pathname.split('/').pop().split('.');
  66.                 if( parts.length > 1){
  67.                     var extension = parts[parts.length-1].toLowerCase();
  68.                     var allowed = ['php', 'php5', 'php4', 'html', 'htm'];
  69.                     if(extension.length > 0 && allowed.indexOf(extension) == -1){
  70.                         return true;
  71.                     }
  72.                 }
  73.             }catch (e){}
  74.             return false;
  75.         }
  76.  
  77.         function is_anchor_link(link) {
  78.             return link.getAttribute('href').startsWith('#');
  79.         }
  80.  
  81.         function is_permitted_host(link){
  82.             return is_permitted_host.hosts.indexOf(link.host) >= 0;
  83.         }
  84.         is_permitted_host.hosts = ["www.leadstogrowyourbusiness.com"];
  85.  
  86.         function is_error(link){
  87.             return is_error.cache.indexOf(get_prefetch_url(link)) >= 0;
  88.         }
  89.         is_error.cache = [];
  90.         try{
  91.             is_error.cache = JSON.parse(sessionStorage.getItem('wphyperspeed_error')) || [];
  92.         }catch(e){}
  93.  
  94.         function add_error(url){
  95.             try{
  96.                 is_error.cache.push(url);
  97.                 sessionStorage.setItem('wphyperspeed_error', JSON.stringify(is_error.cache));
  98.             }catch(e){}
  99.         }
  100.  
  101.         function is_prefetchable(link){
  102.             if(is_file_link(link) || is_anchor_link(link) || is_error(link)){
  103.                 return false;
  104.             }
  105.  
  106.             if(is_woocommerce() && is_woocommerce_protected(link)){
  107.                 return false;
  108.             }
  109.  
  110.             return is_permitted_host(link);
  111.         }
  112.  
  113.         function get_cache_version(){
  114.             return get_cookie('wphyperspeed');
  115.         }
  116.  
  117.         function get_prefetch_url(link){
  118.             var copy = link.cloneNode(false);
  119.             //remove any old hyperspeed query
  120.             var search = copy.search.replace(/wphyperspeed=[0-9]+&?/, '');
  121.  
  122.             //add our 'new' query...
  123.             search += (search.length > 1 ? '&' : '') + 'wphyperspeed=' + get_cache_version();
  124.             copy.search = search;
  125.  
  126.             return copy.href.split('#')[0];
  127.         }
  128.  
  129.         function update_progress(){
  130.             try{
  131.                 NProgress.set( (prefetch.loaded + prefetch.errored) / prefetch.cache.length);
  132.             }catch(e) {}
  133.         }
  134.  
  135.         function onload(e){
  136.             prefetch.loaded++;
  137.             update_progress();
  138.             e.target.parentNode.removeChild(e.target);
  139.         }
  140.  
  141.         function onerror(e){
  142.             add_error(e.target.href);
  143.             prefetch.errored++;
  144.             update_progress();
  145.             e.target.parentNode.removeChild(e.target);
  146.         }
  147.  
  148.         function click(e){
  149.             var link = e.target.closest('a');
  150.  
  151.             if(!is_prefetchable(link)){
  152.                 return;
  153.             }
  154.             var search = link.search.replace(/wphyperspeed=[0-9]+&?/, '');
  155.             search += (search.length > 1 ? '&' : '') + 'wphyperspeed=' + get_cache_version();
  156.             link.search = search;
  157.         }
  158.  
  159.         function prefetch(link){
  160.             link.addEventListener('click', click);
  161.             link.setAttribute('hyperspeed-configured', 'true');
  162.  
  163.             var url = get_prefetch_url(link);
  164.  
  165.             if (prefetch.cache.indexOf(url) > -1) {
  166.                 return;
  167.             }
  168.  
  169.             prefetch.cache.push(url);
  170.             var temp = document.createElement('link');
  171.             temp.rel = 'prefetch';
  172.             temp.href = url;
  173.             temp.addEventListener('error', onerror);
  174.             temp.addEventListener('load', onload);
  175.             document.head.appendChild(temp);
  176.         }
  177.         prefetch.cache = [];
  178.         prefetch.loaded = 0;
  179.         prefetch.errored = 0;
  180.  
  181.         function refresh_cookie(){
  182.             if(!get_cookie('wphyperspeed_refresh')){
  183.                 if(!refresh_cookie.element) {
  184.                     refresh_cookie.element = document.createElement('img');
  185.                     refresh_cookie.element.style.display = 'none';
  186.                     refresh_cookie.element.style.position = 'fixed';
  187.                     refresh_cookie.element.style.width = '0';
  188.                     refresh_cookie.element.style.height = '0';
  189.                     document.body.appendChild(refresh_cookie.element);
  190.                     refresh_cookie.element.addEventListener('load', function(){
  191.                         if(!!get_cookie('wphyperspeed')) {
  192.                             wphyperspeed.start();
  193.                         }
  194.                     })
  195.                 }
  196.  
  197.                 var temp = document.createElement('a');
  198.                 temp.href = window.location;
  199.                 var random = Math.floor((Math.random() * 100000000000) + 1);
  200.                 temp.search = 'wphyperspeed=refresh' + '?r=' + random;
  201.                 refresh_cookie.element.src = temp.href;
  202.             }
  203.         }
  204.         refresh_cookie.element = false;
  205.  
  206.         function wphyperspeed(){
  207.             var cookie = get_cookie('wphyperspeed');
  208.             if(!cookie){
  209.                 return;
  210.             }
  211.             if(cookie == 'disable'){
  212.                 return;
  213.             }
  214.             var links = document.querySelectorAll('a:not([hyperspeed-configured])');
  215.             for(var i = 0; i < links.length; i++){
  216.                 var link = links[i];
  217.                 if(is_prefetchable(link)) {
  218.                     prefetch(link);
  219.                 }else{
  220.                     link.setAttribute('hyperspeed-configured', 'false');
  221.                 }
  222.             }
  223.         }
  224.         wphyperspeed.running = false;
  225.         wphyperspeed.start = function(){
  226.             if(!wphyperspeed.running) {
  227.                 wphyperspeed();
  228.                 wphyperspeed.interval = setInterval(wphyperspeed, 2000);
  229.                 wphyperspeed.running = true;
  230.             }
  231.         };
  232.         wphyperspeed.stop = function(){
  233.             if(wphyperspeed.running) {
  234.                 clearInterval(wphyperspeed.interval);
  235.             }
  236.             wphyperspeed.running = false;
  237.         };
  238.  
  239.         function init(){
  240.             if(is_headless()){
  241.                 return;
  242.             }
  243.  
  244.             if(!!get_cookie('wphyperspeed_cleanup_address_bar')){
  245.                 cleanup_address_bar();
  246.             }
  247.  
  248.             setTimeout(refresh_cookie, 60*1000);
  249.             if(!!get_cookie('wphyperspeed')) {
  250.                 wphyperspeed.start();
  251.             }else{
  252.                 refresh_cookie();
  253.             }
  254.         }
  255.         init.enabled = false;
  256.         init();
  257.     })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement