problema em JavaScript [ajuda]

danfergo

Power Member
Hey pessoal, é o seguinte,

Código:
<script type="text/javascript">
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {    
        hash = hashes[i].split('=');
        hash[1] = unescape(hash[1]);
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
 
    return vars;
}
var write = getUrlVars(); 
</script>

este código copia expressoes contidas no url. isto vesse muito mas em PHP.

ex.: http://url.com/pagina1.htm?name=danfergo

usando : document.write(write['name']) ele vai copiar o que está depois de name= ou seja, danfergo.

Mas agora eu agora estou com problemas, porque, se eu usar um url ex.: "http://www.youtube.com/watch?v=zfHr0SIp7kw"

ele nao copia : "http://www.youtube.com/watch?v=zfHr0SIp7kw" mas sim, "http://www.youtube.com/watch?v="


Isto dá para alterar?
 
Código:
<script type="text/javascript">
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {    
        hash = hashes[i].split('=');
        hash[1] = unescape(hash[1]);
       // vars.push(hash[0]);
       [COLOR=Red]// vars[hash[0]] = hash[1];[/COLOR] /* <-- O que queres fazer aqui?*/
     [COLOR=DeepSkyBlue] [/COLOR][COLOR=DeepSkyBlue] // Não testei mas parece-me que o que queres fazer é isto, simplesmente
       vars.push(hash[1])[/COLOR]
       // E assim tens a teu array com os valores dos atributos enviados pelo URL
    }
 
    return vars;
}
var write = getUrlVars(); 
</script>

Cumps
 
Bem, eu nao entendo muito bem essa parte do

Código:
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {    
        hash = hashes[i].split('=');
        hash[1] = unescape(hash[1]);
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
 
    return vars;
}
eu arranjei um codigo num blog. ja nao sei qual, só sei que se uma pessoa escrever

document.write(write['name']), caso apareça s escreva no url ....?name=texto
ele vai escrever texto na pagina.
Mas caso apareça ?name=texto?outracoisa=
ele so escreve 'texto?' e eu queria que ele escrevesse tudo.
Mas penso que arranjei uma solução es solução esfarrapada (eu qero que o codigo copie url's ) , visto que os url's têm normalmente é "?="
eu troquei a linha:

indow.locat ion.href.indexOf('?') + 1)
por
indow.locat ion.href.indexOf('#') + 1)

e assim ele copiará o que vem a seguir a ?name=texto
mesmo que tenha ?= a seguir.

Agora aproveitando-me do mesmo codigo eu queria usar as propriedades if, else, para criar uma pagina de conteudo dinamico (penso que se chama assim)
ou seja, ex.: se estivesse escrito subpage1 ele faria actuar os dádos dessa pagina

já tentei um codigo mas nao funcionou. :S
 
Ao escrever esta resposta tive uma ideia instantanea para melhorar a minha solução esfarrapada . que agora funciona às 1000 maravilhas, dantes ao usar # tornava a variavel em ancora, funcionava, mas nao era lá muito bom, mas lembrei-me, em vez de alterar o ? alterei o = para um *
 
Back
Topo