2012-07-07 5 views
5

Ho una pagina Web che ricarica alcuni dati utilizzando un post jQuery ogni 30 secondi, il post jquery recupererà gli ancoraggi in un modulo di tabulazione quindi quando jquery esegue l'aggiornamento l'ancora è sempre posta alla prima ancora.Spostare il browser in posizione di ancoraggio senza causare l'aggiornamento della pagina

Diciamo che ho # Anchor1, # anchor2 e # anchor3. Se l'utente sta visualizzando # anchor2 e jquery si ricarica, per impostazione predefinita # anchor1. Prima che la jQuery è fatto io controllare per vedere che ancora lo spettatore sta usando, e poi, dopo jQuery ha terminato Ho poi selezionare l'ancora che stavano guardando utilizzando il codice qui sotto

document.location.href= "#anchor2"; 

Quando uso il codice di cui sopra provoca ovviamente la pagina per aggiornare in modo che fa la funzione document.ready iniziale per recuperare i dati, in modo da quindi il timer non viene mai usato, mantiene solo invece in modo permanente ricaricare l'jquery, facendo ogni secondo o giù di lì, invece di utilizzare il javascript Timer.

Come posso indirizzare l'utente al l'ancora che l'utente stava guardando prima della ricarica ajax senza causare pagina per aggiornare.

Grazie per l'aiuto che puoi fornire.

risposta

13

utilizzare la proprietà document.location.hash:

document.location.hash = "#anchor2"; 
+0

Grazie, questo sembra tipo di lavoro. Al momento, per le prove che ho codificato duro il nome dell'ancora '' anchor2'' Sembra funzionare la prima volta che la funzione viene chiamata, ma quando jquery ricaricati i dati non imposta di nuovo l'ancora si va solo al default come se l'ancora non è mai stato impostato – Boardy

+0

se si sta eseguendo un full 'POST/GET' al server allora JavaScript utilizzato per impostare il' hash' non sembra funzionare perché la risposta dal server sarà ri-renderizzare il pagina. se si tratta di una richiesta parziale 'AJAX', allora questo dovrebbe funzionare come pubblicizzato ... – xandercoded

+1

Grazie per il vostro aiuto sono riuscito a farlo funzionare, ma per qualche ragione ho bisogno di cancellare l'hash utilizzando' 'document.location. hash = "" '' prima di impostarlo con il valore effettivo, ma sembra funzionare correttamente. – Boardy

Problemi correlati