Sto sviluppando un'applicazione per Facebook che utilizza backbone.js 0.3.3 e sto cercando di far funzionare correttamente il pulsante Indietro per gli utenti.Aggiunta di stati della cronologia in un'app Facebook backbone.js (in iframe)
Backbone salva lo stato tramite l'hash dell'URL, utilizzato per eseguire il routing interno. Ad esempio, #home
caricherà la home page e #session
è un'altra pagina. La cronologia viene salvata quando questo accade al di fuori di un iframe, quindi puoi navigare correttamente usando il pulsante Indietro.
La navigazione all'interno dell'iframe non è un problema, e tutti i collegamenti funzionano, ma nessuna cronologia viene salvata dal browser.
La domanda:
The Facebook iframe punti a http://app.example.com
, che è l'applicazione Backbone. Come posso attivare il pulsante Indietro per l'utente sull'app Facebook? Punti bonus per una soluzione esistente utilizzando Backbone.
Ho esaminato questa domanda da diversi punti di vista e non riesco a trovare una soluzione soddisfacente disponibile da nessuna parte. Sembra che pochissime app di Facebook utilizzino backbone/si basino così tanto su Javascript.
Penso che la soluzione sia aggiungere gli stati della cronologia alla finestra padre dell'iframe, ma non so come farlo. Cronologia HTML5? Una sorta di API di Facebook? Anche una soluzione parziale (per i browser moderni) è preferibile alla situazione attuale.
Hai controllato se l'URL dell'iframe ha effettivamente l'hash come '# home' durante la navigazione dell'utente? Perché nell'iframe, Facebook dirotta un sacco di API JavaScript, quindi non sono sicuro che window.location venga dirottato. –
@Cat Chen: l'attributo iframe 'src' è impostato su' javascript: "", e sto riscontrando problemi nel trovare un vero URL per l'iframe utilizzando la console di sviluppo di Chrome (penso che la politica dei domini sia un colpevole) . – Wylie
Capisco. Ho una spiegazione (vedi la mia risposta), ma non ho ancora una soluzione. –