Sto usando document.open() + write() + close() per creare una nuova pagina dal client. Funziona, ma sostituirà l'elemento cronologia corrente con la nuova pagina, quindi quando l'utente fa clic su di esso non vede la pagina su cui si trovavano. Esempio:Desidero document.apen per creare un nuovo elemento cronologia e ritorno per tornare alla pagina originale
- Alla pagina
- Cliccare sul pulsante per passare alla pagina mostrata di seguito.
- Fare clic sul pulsante Fai clic su quella pagina.
- Fare clic su Indietro - questo riporta l'utente alla pagina iniziale che non desidero.
Ho provato a inserire un elemento di cronologia con history.pushState()
ma anche questo non funziona. Permette alla pagina document.open di avere un nuovo URL. Facendo clic su Indietro si riporta l'utente all'URL della pagina che si desidera visualizzare, ma rimane sempre la "Nuova pagina".
Codice pagina HTML completo in basso. Questo tipo di esempio non funziona nei violini ma può essere testato localmente.
<html>
<body>
<button onclick="clickme()">Click me</button>
<script>
function clickme() {
history.pushState(null, null, "Results/");
document.open("text/html");
document.writeln("New Page");
document.close();
}
</script>
</body>
</html>
Nota: Alla ricerca di una soluzione con supporto cross browser, compreso l'ultimo Chrome 45 che possono ha rafforzato la sicurezza un po '.
Grazie. Ci proverò. – Mike
Sì, questo funziona. Grazie. Si basa sulla memoria locale, ma posso usare il mio piano di backup di una nuova scheda se la memoria locale non è supportata e questo metodo per rilevare se è: http://stackoverflow.com/questions/11214404/how-to-detect- if-browser-supports-html5-local-storage – Mike
Nota: il motivo per cui non è stata creata una pagina reale è che la pagina web generata da javascript stava eseguendo un sacco di matematica che non avevo voglia di eseguire nel porting del back-end. Ci sono migliaia di righe di javascript su molte pagine che usano questo metodo. Tutte le pagine hanno ~ 20 anni originariamente ospitate da GeoCities quando non potevo davvero inviare un modulo. – Mike