NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Carga de paginas asíncronas // @namespace http://plataformalol.tk/demigrantScript/ // @version 0.2 // @description Script para mejorar la experiencia en forocoches que permite la carga asíncrona de las páginas de los temas de forooches sin tener que esperar a recargar la página // @author Kolter // @include http://www.forocoches.com* // @include http://forocoches.com* // @grant GM_log // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_getResourceURL // @grant GM_getMetadata // @resource cssX http://plataformalol.tk/resources/forocoches.ajax.css // @require http://code.jquery.com/jquery-latest.js // @require http://plataformalol.tk/resources/uri/src/URI.js // ==/UserScript== var carme = GM_getResourceText ("cssX"); GM_addStyle (carme); if (location.href.indexOf('?p=')!=-1){ var pepe = $("a[class*='mfont']").attr('href'); pepe = new URI (pepe); pepe = pepe.removeQuery ('page'); pepe = "http://www.forocoches.com/foro/"+pepe.toString(); urlentera= new URI(pepe); paginaactual = URI.parseQuery(pepe); urlforocoches =new URI(pepe); }else{ urlforocoches = new URI (location.href); urlentera= new URI(location.href); paginaactual =URI.parseQuery(location.href); } urlnativa = urlentera; var paginaactual = Number(paginaactual.page); urlforocoches =urlforocoches.hostname().toString(); urlforocoches = urlforocoches+"/foro/"; if (isNaN(paginaactual)){ paginaactual=1; } var limit=0; var arrayPaginas =[]; if (urlentera.toString().indexOf('showthread')!=-1){ $("td[class*='vbmenu_control']").parent('tr').parent('tbody').parent("table[class*='tborder']").each(function(){ if (limit==0 || limit==2){ paginasTotal = $(this).children('tbody').children('tr').children('td').html(); arrayPaginas.push($(this)); } ++limit; }) var reg = /Pág (\w+) de (\w+)/g; var match = paginasTotal.replace(reg, "$2"); nTotalPaginas=Number(match); $("<div style='position:fixed;bottom:0;opacity:0.8;right:12%;background-color:#FFF;padding:5px;border:1px solid #777' class='paginacion'></div>").appendTo('body'); $('.paginacion').append('<ul>'); paginacion(); $('.pagina').click(function(e){ e.preventDefault(); var thisurl = $(this).attr('href'); $("html, body").animate({ scrollTop: 0 }, "slow"); loadPage(thisurl); }) function obtenerPaginas (n,v){ result = false; if ((n>v && n<(v+5)) || n==v || (n<v && n>(v-5)) || n==nTotalPaginas || n==1){ result = true; } return result; } function obtenerPaginaPorUrl(url){ pagina = URI.parseQuery(url); return pagina.page; } function loadPage(thishref){ $('#posts').css('opacity','0.5'); $('.paginacion').children('ul').find('strong').each(function(){ $(this).parent('li').css('background-color',"#FFF"); $(this).contents().unwrap(); }) var paginaNueva = obtenerPaginaPorUrl(thishref); if (typeof paginaNueva == 'undefined'){ paginaNueva = 1; } $("#pagina"+paginaNueva).parent('li').css('background-color',"#DDD"); $("#pagina"+paginaNueva).wrap('<strong></strong>'); $.get(thishref,function(data){ history.pushState({}, '', thishref); var tempDom = $('<output>').append($.parseHTML(data)); var appContainer = $('#posts', tempDom).each(function(){ $('#posts').html($(this).html()); }) $('#posts').css('opacity','1'); }) paginaactual= $("#pagina"+paginaNueva).data('pagina'); urlentera= urlentera.setSearch('page',paginaactual); nuevaPaginacion(); } $(document).ready(function(){ if($('#posts').length){ $('#posts').before("<a href='#' style='display:none;position:fixed;bottom:5px;right:80px' id='scrollTop'><img src='http://php.net/images/to-top@2x.png' width='48' /></a><a style='position:fixed;bottom:5px;border:1px solid #000;right:25px;opacity:0.8;padding:5px; border-radius:15px;background-color: #FFF; font-family: Fjalla One, sans-serif;' href='#' id='recargaPagina'><img width='32' src='http://png-3.findicons.com/files/icons/2671/jigsoar/64/64_refresh.png' /></a>"); } $(window).scroll(function (event) { var scroll = $(window).scrollTop(); if (scroll>500){ $('#scrollTop').show(); }else{ $('#scrollTop').hide(); } }) $('#scrollTop').click(function(){ $("html, body").animate({ scrollTop: 0 }, "slow"); }) $("#goPagina").click(function(e){ e.preventDefault(); var paginaIr = $("#irPagina").val(); if (Number(paginaIr)>0 && Number(paginaIr)<68){ var urlentera2 = urlentera; var thisUrl = urlentera2.setQuery('page',paginaIr).toString(); loadPage(thisUrl); } }) $('#recargaPagina').click(function(e){ e.preventDefault(); loadPage(location.href); }) }) function paginacion(){ var paginaAnterior =paginaactual-1; var paginaSiguiente = paginaactual+1; var urlentera2= urlentera; $('.paginacion').children('ul').html(''); $('.paginacion').children('ul').append("<li><a class='pagina' data-pagina='"+paginaAnterior+"' id='prevPagina' href='"+urlentera2.setSearch('page',paginaAnterior).toString()+"'><</a></li>"); for(var i=1;i<(Number(match)+1);i++){ var htmlpaginas =$("<li><a class='pagina' id='pagina"+i+"' data-pagina='"+i+"' href='"+urlentera2.setSearch('page',i).toString()+"'>"+i+"</a></li>"); if(i==paginaactual){ htmlpaginas.children('a').wrap('<strong></strong>'); htmlpaginas.css('background-color','#DDD'); } if (obtenerPaginas(i,paginaactual)){ htmlpaginas.css('display','inline'); $('.paginacion').children('ul').append(htmlpaginas); }else{ htmlpaginas.css('display','none'); $('.paginacion').children('ul').append(htmlpaginas); } } $('.paginacion').children('ul').append("<li><a class='pagina' data-pagina='"+paginaSiguiente+"' id='nextPagina' href='"+urlentera2.setSearch('page',paginaSiguiente).toString()+"'>></a></li>"); $('.paginacion').children('ul').append('<li style="border:0px"><input type="text" id="irPagina" style="margin-left:1px" size="1" /><input type="button" value="ir" id="goPagina" /></li>'); } function nuevaPaginacion(){ var paginaAnterior =paginaactual-1; var paginaSiguiente = paginaactual+1; var urlentera2 = urlentera; for(var i=1;i<(Number(match)+1);i++){ if (obtenerPaginas(i,paginaactual)){ $('#pagina'+i).parent('li').css('display','inline'); }else{ $('#pagina'+i).parent('li').css('display','none'); } } var urlNext = urlentera2.setSearch('page',paginaSiguiente).toString(); var urlPrev = urlentera2.setSearch('page',paginaAnterior).toString(); $('#nextPagina').attr('href',urlNext); $('#prevPagina').attr('href',urlPrev); if (paginaactual==nTotalPaginas){ $('#nextPagina').parent('li').css('display','none'); }else{ $('#nextPagina').parent('li').css('display','inline'); } if (paginaactual==1){ $('#prevPagina').parent('li').css('display','none'); }else{ $('#prevPagina').parent('li').css('display','inline'); } } }