logo

Diferença entre location.replace de location.href

logo

Dias atrás li no blog Blogging Developer um post que falava sobre a diferença entre o location.replace do location.href. (link).

Neste post é apenas comentado para que é usado, ou seja, redirecionamento de páginas. Mas vamos complementar com algumas informações.

A grande diferença entre eles é que o .replace é um método já o .href é uma propriedade.

Sendo assim, cada um tem um comportamento diferente.

O .replace faz com que a página seja substituída, desta forma não gerando histórico de navegação, já que a página é a mesma substituída por outra. Já o .href altera o identificador da página, sendo assim criando uma nova página e consecutivamente criando histórico.

Exemplos:

.href
.replace

Fica aqui uma questão para os gurus da NET, o por que dos dois seguintes exemplos não funcionarem corretamente?

.href
.replace

Favor deixas as considerações nos comentários =D

Bookmark and Share

12 marcas, uhull to “Diferença entre location.replace de location.href”

  1. Por que nos dois exemplos é necessário um click no id hello, ou seja, o texto redirecionar.

  2. Roberto Vieira disse:

    Olá Ruan,

    O problema está no .click, essa função espera um clique em algo.

    $(document).ready(function() {
      $("#hello").click(function(){
          location.href="http://www.ruancarlos.com.br";
      })
    });
    

    Já o segundo exemplo você passa direto o

    location.href ou o location.replace

    Se nos dois primeiros exemplos você clicar no Redirecionar que está dentro da div Hello ele irá executar a ação.

    =) Abs

    • Ruan Carlos disse:

      Sim isso eu sei, mas a questão é, por que quando eu tenho uma ação ele gera histórico e quando eu não tenho essa ação ele não gera. É justamente essa a dúvida, talvez a resposta esteja nas entranhas do JavaScript, mas acho que não vale apena o esforço =D.

      Vlw pelo comentário =)

  3. Vlw pelo comentário, vou acompanhar o blog a partir de agora, muito interessantes os posts.

  4. Paulo Aragao disse:

    Ruan:

    Primeiramente valeu pelo blog. O meu problema é que preciso usar location.replace com num form usando o metodo POST para que a outra pagina receba as variaveis do tipo hidden e só consigo com o metodo GET. Você teria uma solução.

    desde já agradeço.

    Abraço.

  5. belmiro disse:

    este post é incrível! Obrigado pela informação!

  6. Olá Ruan!
    Cara, você me deixou curioso.
    Por que quando tem a ação ele gera histórico e quando não tem ele não gera?

  7. Roberto Vieira disse:

    Acredito que o .replace ele faz uma alteraçao na mesma pagina, por isso nao cria historico pois o historico seria a propria pagina, ja o href existe um redirecionamento para uma nova pagina, ao contrario do .replace que altera o “corpo” da pagina atual nao tendo historico pq nao criou uma nova pagina.

    Acho meio loko mas acho que é isso.

    Buscando na net achei isso:

    http://www.roseindia.net/javascript/javascript-location-replace.shtml

logo
logo
Hospedado no Djalma | Ruan Carlos.