Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com pushState


PanicoLima

Pergunta

Olá pessoa. Tenho o seguinte script que está funcionando perfeitamente, mas o problema é que gostaria de fazer a função pushState do mesmo funcionar, pois ao descometa-la o script só funciona uma vez, ou seja, só responde a uma solicitação, deixando de funcionar logo em seguida.

// AJAX para Requisicao
$(document).ready(function() {  
    var content = $('#content');  

      // Pre carregando o GIF Loading 
      loading = new Image(); loading.src = 'loading.gif';  
      $('a').live('click', function(e) {  
          e.preventDefault();
  
          // Função para criar um objeto XMLHTTPRequest
          function CriaRequest() {
             try{
                 request = new XMLHttpRequest();       
             }catch (IEAtual){
                 try{
                     request = new ActiveXObject("Msxml2.XMLHTTP");      
                 }catch(IEAntigo){
                  
                     try{
                         request = new ActiveXObject("Microsoft.XMLHTTP");         
                     }catch(falha){
                         request = false;
                     }
                 }
             }
             if (!request)
                 alert("Seu Navegador não suporta nosso site! Aconselhamos que atualize-o para o Google Chrome!");
             else
                 return request;
          }

          // Definicao da Query String
          var href = $(this).attr('href');
          var url_r = href.split('/');
          // Verifica se não é primaria
          if(typeof url_r[2] != 'undefined' && url_r[2] != '') {
              // Conteudo ou Secundaria
              var url_test = url_r[2].split('-', 2);
              if(typeof url_test[0] != 'undefined' && isNaN(url_test[0]) == 0  && typeof url_test[1] != '') {
                  // Conteudo
                  if(typeof url_r[3] != 'undefined' && url_r[3] != '') {var pag = url_r[3];} else {var pag = '1';}
                  var query_string = 'sessao='+url_r[1]+'&id='+url_test[0]+'&pag='+pag+'&pagina=conteudo';
              } else {
                  // Secundaria
                  if(typeof url_r[3] != 'undefined' && url_r[3] != '') {var pag = url_r[3];} else {var pag = '1';}
                  var query_string = 'sessao='+url_r[1]+'&url='+url_r[2]+'&pag='+pag+'&pagina=secundaria';
              }
          } else {
              // Primaria
              var query_string = 'sessao='+url_r[1]+'&pagina=primaria';
          }
          //alert(query_string);

         // // Declaração de Variáveis
         var result = document.getElementById("conteudo");
         var xmlreq = CriaRequest();

         // Exibi a imagem de progresso
         result.innerHTML = '<img src="loading.gif"/>';

         // Iniciar uma requisição
         xmlreq.open("GET", "pagina.php?" + query_string, true);

         // Atribui uma função para ser executada sempre que houver uma mudança de ado
         xmlreq.onreadystatechange = function() {

             // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
             if (xmlreq.readyState == 4) {
                  
                 // Verifica se o arquivo foi encontrado com sucesso
                 if(xmlreq.status == 200) {
                     // Exibe conteúdo
                     result.innerHTML = xmlreq.responseText;
                     // Altera informacoes da página
                     var title = document.getElementById("title").innerHTML;
                     // window.history.pushState(href, title, href);               <<<<<<<<<<<<<<<<<<<< AQUI >>>>>>>>>>>>>>>>>>
                     document.title = title;
                 } else {
                     result.innerHTML = "Erro: " + xmlreq.statusText;
                 }
             }

         };
         xmlreq.send(null);
    });
});

E se não for pedir muito, gostaria de saber se é possível implementar a função onpopstate e como.

Obrigado.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...