This Javascript code modifies the function spages()
.
- Ajax pagination (if it is enabled on the Common settings)
- Scrolls the page to the top after clicking on the button
- Change the URL in address bar to requested page, like Google Webmasters says.
- Send pageview to Google Analytics (if you are using)
- You need to put this code after the [BODY], I recommend put on Global Block Bottom part of the website
- A troca o URL na barra de endereços e envio de pageview para GA só acontece se você estive criado o objeto javascript do infinteScroll.
- It has only been tested in modules
/publ
,/dir
,/load
and/board
. If you test and adapt to another module, please let me know. :)
Este código Javascript modifica a função spages()
.
- Pagina Ajax do uCoz (se estiver ativada nas configurações gerais)
- Rola a página para o topo depois de clicar no botão
- Troca o URL na barra de endereços da pagina carrega, conforme manda o manual do Google Webmasters
- Envia pageview para o Google Analytics (caso esteja usando)
- Você precisa colocar este código depois do [BODY] da página, recomendo colocar no Bloco Global Parte inferior do site.
- A troca o URL na barra de endereços e envio de pageview para GA só acontece se você estive criado o objeto javascript do infinteScroll.
- Só foi testado nos módulos
/publ
,/dir
,/load
e/board
. Caso você teste e adapte para outro módulo, favor me avisar. :)
Javascript only
/**
* Modificando a função spages() para rolar a página para cima.
*/
$(document).ready(function () {
if (typeof spages === "function") {
// expressão regular para pegar o corpo da função
var funcBody_re = new RegExp("[.*\A{](.*)[.*\Z}]");
// expressão regular para pegar os parametros da função
var funcParams_re = new RegExp("[\A(](.*?)[\Z)]");
//função em string
var func = spages.toString();
var funcBody_m = funcBody_re.exec(func);
if (funcBody_m !== null) {//caso a função exista
/**
* Rolar a página para o topo
*/
var aditionalJS = "$('html, body').animate({scrollTop : 200},800);";
/**
* Trocando o URL na barra de endereços
* Enviando page view para o Google Analytics
*/
if (typeof infiniteScroll.main_page_url === "string") {
aditionalJS += "var newUrl = infiniteScroll.main_page_url;if(p>1){newUrl+='?page' + p;}if (typeof ga === \"function\" && window.location.href !== newUrl) {ga('send', 'pageview', newUrl);console.log(\"send to GA: \"+newUrl);}history.replaceState(null, null, newUrl);console.log(\"addr bar: \"+newUrl);";
}
/**
* Criando a função e sobrescrevendo a original
*
* A pagina inicial do módulo e a página de postagem tem 2 parametros
* As páginas seção e categoria tem 3 parametros
*/
var params = funcParams_re.exec(func);
var params_ = params[1].split(",");
if (params_.length === 2) {
//spages(p,link)
spages = new Function(params_[0], params_[1], funcBody_m[0] + aditionalJS);
}
else {
//spages(p,s,link)
spages = new Function(params_[0], params_[1], params_[2], funcBody_m[0] + aditionalJS);
}
}
}
});