2012-07-16 8 views
6

ho bisogno di impedire che il browser da aggancio alla posizione di scorrimento precedente indietro quando l'utente ha spinto un pulsante indietro come questo:Impedire browser da aggancio alla posizione di scorrimento precedente quando si preme il tasto

<a href="javascript:history.go(-1)" 
     onClick="javascript:history.go(-1)" title="< GO BACK"></a> 

dopo aver premuto il pulsante il browser torna alla posizione di scorrimento precedente in questa pagina Voglio interrompere questo comportamento e caricare solo la parte superiore della pagina.

Spero che qualcuno conosca una soluzione adeguata.

-exemple-

aprire una pagina scorrere verso il basso andare a una nuova pagina e premere il pulsante di nuovo la pagina verrà automaticamente scorrere verso il basso per il luogo che scorrere prima!

+1

Sembra che tu sia lo scorrimento utilizzando tasselli. Se vuoi raggiungere il tuo obiettivo, rimuovi i nomi di ancoraggio e scorri su di essi con la funzione 'scrollTo' (o simile) di JavaScript. –

+0

no questo non è il caso! basta aprire una pagina scorrere verso il basso andare in una nuova pagina e premere il pulsante indietro la pagina scorrerà automaticamente verso il basso fino alla posizione in cui si scorre prima! – phj

risposta

1

Sono abbastanza sicuro che il comportamento che stai descrivendo sia classificato come una di quelle che è considerata una preferenza dell'utente. (Una di quelle cose che non dovresti manomettere)

@mrtsherman ha inventato un hack/workaround for this, ma a meno che non stia seriamente compromettendo l'usabilità della tua webapp, penso che dovresti lasciare che il browser si comporti come ci si aspetterebbe normalmente comportarsi (e scorrere fino alla posizione in cui si trovavano quando hanno lasciato la pagina). Assicurati di revocare a mrtsherman la sua dolce pepita di js se la usi.

+1

grazie mille non ho visto il trucco prima di prendere in considerazione l'utilizzo per alcune pagine – phj

0

Ho lo stesso problema e non ho ancora trovato la soluzione corretta,
ma posso darvi una soluzione molto buona per questo problema.

Basta scorrere verso l'alto prima del caricare la pagina successiva.
Quando l'utente fa clic indietro, il browser scorre verso l'alto.

Esempio:

Prima Pagina:
<a href="page2.htm" onclick="window.scrollTo(0, 0);">Next</a>

seconda pagina:
<a href="page1.htm" onclick="history.go(-1); return false;">Back</a>

Nota che href="page1.htm" carichi solo se l'utente seleziona Apri in una nuova finestra/scheda

Scusa la mia Inglese. Spero che aiuti.

-4

Ho trovato una soluzione migliore!

inserire il seguente codice in ogni pagina:

<script> 
    setTimeout('window.scrollTo(0, 0);', 1); 
</script>