2013-02-06 20 views
6

私のWebページにiframeがあります。私はJavaScriptのようにsrcプロパティを次のように変更します:履歴オブジェクトのエントリなしでiframe.srcを変更します。

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

ただし、毎回これを行うと、ブラウザの履歴に記録されます。したがって、ブラウザのウィンドウで戻るたびに、iframeコンテンツはvideoid3からvideoid2に移動してvideoid1になります。もう一度押すと、ページ全体が戻ってきます。

ブラウザの履歴にエントリを記録せずに、javascriptでiframe srcを修正したいとします。したがって、ブラウザの「戻る」ボタンをクリックすると、iframeを更新せずにページ全体が戻ってきます。

は、私のようなものをやってみました:このボタンは私が望んだように動作するバックブラウザを作ったが、

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'); 

、それはVimeoのビデオでは、特定の物事を破りました。 Vimeoは、contentWindow.location.replace()の代わりにiframe.srcを使用してURLを変更する必要があります。

このように、履歴にログインせずにiframe.srcを変更するにはどうすればよいですか?

関連 これは実際に私はちょうど新しいものと古いのiframeを置き換える、SRCを変更しないでくださいここHistory object back button with iframes

+0

可能な複製http://stackoverflow.com/questions/821359/reload-an-iframe-without-adding-to-the-history私はこの答えがあなたの問題を解決すると思うhttp://stackoverflow.com/a/8681618/2009041 –

答えて

14

を掲載、私は主な問題を解決するために模索しています解決策の一つであり、 ?

<!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 /> 

履歴状態はありません。同じ機能。誰もが勝つ。

+0

もしあなたが望むなら、私が言及した私の他の質問にこの回答を投稿することができます。それから私はそれを受け入れるだろう。 – John

関連する問題