2013-02-06 12 views
6

Ho un iframe nella mia pagina web. Modifico la proprietà src tramite javascript in questo modo:Modifica iframe.src senza voce nella cronologia dell'oggetto

document.getElementById('myiframe').src = 'http://vimeo.com/videoid1'; 
document.getElementById('myiframe').src = 'http://vimeo.com/videoid2'; 
document.getElementById('myiframe').src = 'http://vimeo.com/videoid3'; 

Tuttavia, ogni volta che faccio questo, è registrato nella storia del browser. Quindi ogni volta che torno indietro nella finestra del browser, il contenuto dell'iframe va da videoid3 a videoid2 a videoid1. Se premo di nuovo, l'intera pagina torna indietro.

Vorrei modificare iframe src con javascript SENZA registrare una voce nella cronologia del browser. Quindi, se faccio clic sul pulsante Indietro del browser, l'intera pagina torna indietro senza aggiornare l'iframe.

Ho provato a fare qualcosa di simile:

document.getElementById('myiframe').contentWindow.location.replace('http://vimeo.com/videoid1'); 
document.getElementById('myiframe').contentWindow.location.replace('http://vimeo.com/videoid2'); 
document.getElementById('myiframe').contentWindow.location.replace('http://vimeo.com/videoid3'); 

Anche se questo ha reso il browser pulsante indietro si comportano nel modo che volevo per, si è rotto alcune cose nel video vimeo. Vimeo RICHIEDE di cambiare gli URL tramite iframe.src invece di contentWindow.location.replace().

Come modificare l'iframe.src SENZA accedere alla cronologia?

correlati Questo è in realtà una delle soluzioni che sto esplorando per risolvere il problema principale, che ho postato qui History object back button with iframes

+0

Possibile duplicato di http://stackoverflow.com/questions/821359/reload-an-iframe-without-adding-to-the-history Penso che questa risposta risolverà il tuo problema http://stackoverflow.com/a/8681618/2009041 –

risposta

14

non modificare lo src, basta sostituire il vecchio iframe con uno nuovo ?

<!doctype html> 

<style> 
iframe { 
    width: 300px; 
    height:300px; 
} 
</style> 

<script> 
var urls = ["http://bing.com", "http://google.com", "http://duckduckgo.com"]; 

function next() { 
    if(urls.length==0) return; 
    var original = document.getElementsByTagName("iframe")[0]; 
    var newFrame = document.createElement("iframe"); 
    newFrame.src = urls.pop(); 
    var parent = original.parentNode; 
    parent.replaceChild(newFrame, original); 
} 
</script> 

<p>let's test some iframes</p> 
<button onclick="next()">next</button> 
<iframe /> 

Nessuno stato cronologia. Stessa funzionalità Ognuno vince.

+0

se vuoi, puoi postare questa risposta alla mia altra domanda che ho menzionato. Allora lo accetterò. – John

Problemi correlati