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

Request.hashstring


KaKarotto

Pergunta

Oi pra todo mundo.

Discaradamente essa é uma cópia do post da Andreia, onde ela passa uma função para pegar valores de querystrings por javascript.

Porém, eu dei uma melhorada naquele código e mudei para se tornar um pouco mais genérico.

Para quem mexe com ajax e outras implementações onde não requer o recarregamento da página, essa função será extremamente útil. Uma boa forma de se guardar informação além dos cookies são as query strings.

Ao alterar o endereço do navegador, a página é recarregada, mas em muitos casos esse recarregamento não é desejável, como é o caso do ajax. Então usamos os valores de strings com hash (#).

Através dos hashes podemos mudar o conteúdo da url sem que a página seja recarregada. Isso é muito importante.

Dessa forma, podemos guardar informação como as famosas querystrings que já conhecem, porém usando hash. Exemplo, copie o seguinte hash e cole em no final da url do seu navegador: #ajax=index&skin=black.

Deu pra perceber que a página não é recarregada. Os hashes eram usados comumente para âncoras, mas podemos aproveitar essa propriedade para diversas aplicações como ajax, usando como um histórico.

Sem mais, para quem não sabia sobre os hashes está aí a explicação, vamos ao código:

function HashString(variavel, b4hash){
    var variaveis=b4hash.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
    var nvar
         if(variaveis!=""){
         var qs=[]
            for(var i=0;i<variaveis.length;i++){
            nvar=variaveis[i].split("=")
            qs[nvar[0]]=unescape(nvar[1])
            }
        return qs[variavel]
        }
    return null
}
O primeiro parâmetro é o nome da variável que se deseja capturar o valor. Já o segundo parâmetro é a string que a função irá usar para fazer a procura. Dá pra perceber que o código não funciona apenas para os hashes, funciona também para as querystrings normais, basta saber como usar os parâmetros da função. Em outras palavras, a função busca o valor da variavel em qualquer string que use o padrão: var=valor&var2=valor2&var3=valor Agora, para mostrarmos um alert, ao carregar a página, exibindo o valor de uma variável usando hash:
window.onload=function(){
        if(location.hash) // Se tiver hash na url...
        alert(
            HashString(
                "skin",
                location.hash.substring(1) // Após o hash, toda a string a ser procurada.
            )

        )
    }

Legal né ;) . O código que copiei e modifiquei é o da Andreia e está aqui.

Aquele abraço.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...