2009-06-01 16 views
6

Abbiamo una funzione javascript che dovrebbe "spostare" una pagina in una determinata posizione usando le ancore. Questa funzione fa semplicemente window.location.href = "#" + hashName. Funziona in FF, ma non in IE. Ho provato questo codice usando IE7 sotto Windows XP. Ho provato using window.location.href, window.location.hash, window.location.replace e tutti questi modi, ma utilizzando l'oggetto document. Qualcuno sa come affrontare questo problema?problema window.location.hash in IE7

+0

Che cosa si intende con 'con oggetto documento'? Dovresti usare 'window.location' come suggerito nelle risposte -' document.location' è specifico per Gecko! – Christoph

+0

Ho usato entrambi - e non funzionano –

+0

Vladimir, lavora per me in IE7/XP ... – James

risposta

6

IE e la maggior parte degli altri browser scorrere fino a un ancoraggio con anchor.focus(), oa qualsiasi elemento con un ID con element.scrollIntoView (vero)

+0

Grazie, funziona. –

+0

Ha funzionato bene. +1 –

2

Hai provato a cambiare solo location.hash?

window.location.hash = "#" + hashName; 
+1

Ho provato questo, ma non funziona anche con lo –

+0

non ho familiarità con questo. sembra buono, però. * va a test ... * –

+0

funziona in firefox 3 –

4

ho justed testato questo in IE7 in Vista , forse il problema esiste solo in IE7 sotto XP? Perché questo funziona bene per me in IE7, Chrome e Firefox:

window.location.hash = hashName; 

Se davvero questo non funziona allora potremmo usare scrollIntoView come suggerisce Kennebec.

function scrollToAnchor(anchorName){ 
    //set the hash so people can bookmark 
    window.location.hash = anchorName; 
    //scroll the anchor into view 
    document.getElementsByName(anchorName)[0].scrollIntoView(true); 
} 

Usa come questo:

<script type='text/javascript'>scrollIToAnchor('foo');</script> 
<a name='foo'></a> 
<p>I will be scrolled into view</p>