7

Ho un orribile, pagina sparso con un sacco di JavaScript:IE8 salta solo torna all'inizio della pagina precedente non dove ero prima (ma solo con JS su)

Ha una visualizzazione elenco e se vi piace puoi guardare uno degli elementi nella lista in dettaglio.

Il problema è ora se voglio tornare dalla visualizzazione dettagli alla vista elenco utilizzando il pulsante Indietro del browser ottengo risultati diversi.

In Chrome e Firefox, anche in IE7 finirò dove ho fatto clic, ma non così in IE8.

Per rendere ancora più confuso, se disattivo JavaScript, funziona anche per IE8.

Il problema è che ora non riesco a cercare. Qualcuno conosce questo problema o almeno un metodo o una funzione JavaScript che potrebbe influire su questo?

+0

Forse aggiungere un ordinamento all'elenco? è chiamato da un db? – DiederikEEn

+0

Possibili ragioni: la pagina viene reindirizzata dal client tramite window.location = "herpderp" invece di window.location.replace(); la pagina usa iframe che non sono così ovvi quando parliamo di attraversare la storia, specialmente in IE. – Tommi

+0

L'elenco visualizza una lib di JS di terze parti che stai utilizzando o una che hai scritto tu stesso? Se si tratta di una lib di terze parti, ti preghiamo di farci sapere quale. – Spudley

risposta

3

È difficile fornire una risposta definitiva senza il codice. Una risposta provvisoria basata su esperienze passate con IE:

IE hanno comportamenti diversi, in particolare IE8 che si trova all'incrocio tra le versioni precedenti e tutte tranne quelle standard [IE6-, IE7] e il più recente IE9 che meglio si attiene agli standard. In particolare in Javascript, gli IE potrebbero essere schizzinosi rispetto ai browser non IE.

Che indietro comportamento potrebbe accadere se si attiva un errore di JS sia quando si esce dalla pagina (grazie al collegamento click), o quando si torna (che è più facile da individuare)

  • Controllare se si verifica un errore quando si esce (o tornare) in fondo alla pagina
  • il click azione potrebbe essere ritardata grazie alla setTimeout quale funzione creerebbe window.location.href per dare il tempo sufficiente per individuare un errore prima che la pagina è lasciata
  • Se il reindirizzamento è "manuale" (come window.location.href= in contrasto con un semplice tag <a>) Provare ad aggiungere uno try {} catch al codice che viene eseguito dopo aver fatto clic sull'elemento (come con this onbeforeunload bug).