2010-11-18 10 views
5

Tengo una función que cambia el hash en la url e inserta/elimina un div de mi página principal. Lo hice para poder tener una página que pueda pasar sin una recarga, pero al mismo tiempo quería que las personas pudieran marcar una determinada sección y acceder a ella más adelante sin tener que volver a pasar por la página.if function with window.location.hash help

Cuando intento llamar a mi función hash(), que cierra todos los divs y abre el div específico dependiendo del hash, no funciona. Probablemente no tenga lo correcto en las declaraciones if, porque cuando puse un alert() en la función hash(), aparece como debería.

function hash(){ 
    if (window.location.hash == "dcontact") { 
     removedivs(); 
     InsertContent('dcontact'); 
    } 
    if (window.location.hash == "dhome") { 
     removedivs(); 
     InsertContent('dhome'); 
    } 
} 
hash(); 

Soy consciente de que hay probablemente mejores maneras de hacer todo lo que he mencionado, pero este es el único sitio web que voy a estar haciendo, y no les importa cómo es sucio el guión está en el final, siempre y cuando funcione.

Respuesta

7

la razón por la que no funciona es el hash real (en los EE.UU. Creo que se llama una libra) símbolo - # al principio de window.location.hash

De memoria IE no pone el símbolo de hash en él, por lo que hacer esto:

function hash() { 
    var hash = window.location.hash.replace('#',''); 

    if (hash == "dcontact"){removedivs(); InsertContent('dcontact');} 
    if (hash == "dhome"){removedivs(); InsertContent('dhome');} 
} 

también podría considerar simplemente llamando InsertContent (hash) en lugar de hacer un if() para cada enlace diferente que tendrá

+0

muchas gracias por su ayuda, funcionó perfectamente. – pobrien

Cuestiones relacionadas