2009-07-04 8 views
5

In un'app Web viene utilizzato IFRAME per consentire agli utenti di selezionare gli elementi per la pagina padre.cronologia iframe firefox

Il problema è che FIREFOX (3.5) aggiunge una copia della stessa pagina (padre) alla cronologia ogni volta che viene aperto IFRAME.

L'app Web utilizza history.back() per passare dalla pagina padre a quella che ha chiamato quella pagina.

Possiamo risolvere il problema passando la pagina "indietro" come parametro dal chiamante al chiamato.

Il tasto BACK rimane rotto (l'utente preme il pulsante indietro ma rimane nella stessa pagina).

L'altro problema che viene creato è che vogliamo alcune pagine fuori dalla cronologia. Non vogliamo che l'utente passi indietro allo in una pagina INSERT.

Questo è fatto facilmente con location.replace sul INSERT pagina una volta terminato, ma impossibile su Firefox con molte voci dello stesso INSERT pagina.

risposta

1

Se il problema è che le voci sono duplicati, andare

history.back(-2) 

o -3, -4 o, se necessario, invece di history.back() or history.back(-1).

Ma allora, se fossi in te mi piacerebbe provare a fosso iframe soluzione basata e costruire qualcosa che non li coinvolge a tutti, dal momento che la comunicazione tra iframe e un documento genitore tende ad essere un bug Magnet-

3

Non sono sicuro se il problema è lo stesso come ho avuto oggi, ma ...

Quando c'è un iframe sulla pagina e iframe src modifiche, il browser (FF 4.0 nel mio caso) ritiene che sia un navigazione e premendo il pulsante Indietro, naviga di un passo indietro all'interno di questo iframe.

Si comporta in modo diverso quando si crea questo iframe in modo dinamico con javascript dopo che la pagina è stata caricata. Il cambio consecutivo degli iframe src non conta come la navigazione e il browser non inserisce alcuna pagina nella cronologia, con conseguente comportamento previsto del pulsante Indietro.

+1

Non so se questo era corretto nel 2011, ma questo non è corretto oggi se sto leggendo questo correttamente. Gli iframe devono essere sostituiti o creati nello stesso momento in cui viene modificato l'evento cronologico. (nella stessa catena di funzioni) Il meccanismo di propagazione della catena di eventi back/forward non aggiunge quindi questo iframe appena creato in Firefox, e tutto va bene. – Agamemnus

Problemi correlati