Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galerinha do mal,
Venho incomodar vocês +1x sobre a criação de urls amigaveis com sites em AJAX... Após muitas pesquisas, acabei sendo levado a trabalhar com o método pushState() apesar dos pesares é o mais recomendado atualmente.
Porém estou com dificuldade de entender alguns pontos do cod.. por exemplo:
cod. completo
$(function() {
$('nav a').click(function(e) {
$("#loading").show();
href = $(this).attr("href");
loadContent(href);
history.pushState('', 'New URL: '+href, href);
e.preventDefault();
});
window.onpopstate = function(event) {
$("#loading").show();
console.log("pathname: "+location.pathname);
loadContent(location.pathname);
};
});
function loadContent(url){
$.getJSON("content.php", {cid: url, format: 'json'}, function(json) {
$.each(json, function(key, value){
$(key).html(value);
});
$("#loading").hide();
});
$('li').removeClass('current');
$('a[href="'+url+'"]').parent().addClass('current');
}
*Esse cod pode ser encontrado nesse exemplo prático -> http://html5.gingerhost.com/
Dúvidas nas Linhas abaixo:
L1
$.getJSON("content.php", {cid: url, format: 'json'}, function(json) {
*O que seria "content.php"??
L2
$(function() { $('nav a').click(function(e) { $("#loading").show();
*O que seria #loading? (Div onde sera carregada conteúdo das paginas?)
E me aproveitando um pouco da paciência de vocês... Como meu site estar em AJAX e suas urls estão assim -> www.site.com.br/#php/pagina1.php como faço para que ela seja visualizada assim -> www.site.com.br/pagina1 ??
Tipo tenho que usar algum outro método para deixar as urls amigaveis (www.site.com.br/pagina1) e depois uso o pushState() para criar uma pag "paralela" que seja possivel ser rastreada pelos robos do google?? (N entendi bem como isso funciona).
Meu cod em ajax estar assim:
Instrucao.js
function extraiScript(texto){
// inicializa o inicio ><
var ini = 0;
// loop enquanto achar um script
while (ini!=-1){
// procura uma tag de script
ini = texto.indexOf('<script', ini);
// se encontrar
if (ini >=0){
// define o inicio para depois do fechamento dessa tag
ini = texto.indexOf('>', ini) + 1;
// procura o final do script
var fim = texto.indexOf('</script>', ini);
// extrai apenas o script
codigo = texto.substring(ini,fim);
// executa o script
eval(codigo);
}
}
startEditor();
}
function abrirPag(valor){
var url = valor;
xmlRequest.open("GET",url,true);
xmlRequest.onreadystatechange = mudancaEstado;
xmlRequest.send(null);
return url;
}
function mudancaEstado(){
if (xmlRequest.readyState == 4){
texto=unescape(xmlRequest.responseText.replace(/\+/g," "));
document.getElementById("corpo").innerHTML = xmlRequest.responseText;
extraiScript(texto);
}
}
function id( el ){
return document.getElementById( el );
}
function pega_arq( url2 ){
var file = url2.split('#');
return ( file[1] ) ? file[1] : 'php/home.php';
}
window.onhashchange = function() {
loadPag();
};
function loadPag(){
var as = document.getElementsByTagName('a');
for( var i=0; i<as.length; i++ ){
as[i].onclick = function(){
abrirPag( pega_arq( this.href ) );
}
}
abrirPag( pega_arq( document.location.href ) );
}
Qualquer dica ou orientação será bem vinda.. Desde já agradeço. ^^
Assim que tiver conseguido posto o cod aqui. abss
Carregando comentários...