J'ai le code HTML/JS suivant:IE met en cache dynamiquement iframe ajouté. Pourquoi, et comment puis-je l'empêcher?
<html>
<body>
<script>
function foo(){
var html = "<iframe src=\"foo.html\" />";
document.getElementById('content').innerHTML=html;
}
function bar(){
var html = "<iframe src=\"bar.html\" />";
document.getElementById('content').innerHTML=html;
}
function show(){
alert(document.getElementById('content').innerHTML);
}
</script>
<button onclick="foo()">foo</button><br />
<button onclick="bar()">bar</button><br />
<button onclick="show()">test</button><br />
<div id="content"></div>
</body>
</html>
Ce genre de travaux comme prévu, même dans IE. Jusqu'à ce que je frappe F5. Quand je clique d'abord sur foo, je reçois un iframe avec le contenu de foo.html
, comme prévu. Je puis actualiser et appuyez sur bar. Au lieu d'obtenir le contenu de bar.html
, je vois le contenu de foo.html
. Bizarrement, quand je clique sur test, le alert()
me dit que l'attribut src
de l'iframe est correctement réglé sur bar.html
. Firefox n'a pas ce problème. Pourquoi cela arrive-t-il et comment puis-je l'éviter?
modifier: ce que j'oublié de mentionner est que je ne peux pas mettre le iframe et changer l'attribut src. Dans la situation réelle que j'ai, parfois j'ai besoin d'un <img>
plutôt qu'un .