Si vous générer dynamiquement le contenu de votre iframe, tous les scripts/variables chargée fuira d'une écriture à l'autre. Ainsi, la solution fournie par @Eli d'effacement de l'élément dom ne fonctionnera pas.
En bref:
Pour nettoyer, envelopper votre iframe dans un élément div et remplacer son contenu dom.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div id="wrapper">
<iframe id="test"></iframe>
</div>
</body>
</html>
Pour nettoyer:
var wrapper = document.getElementById('wrapper');
wrapper.innerHTML= "<iframe id='test'></iframe>";
détails: Demo de fuite script
Exemple de fuite de script entre deux iframe écritures (testé avec Chrome):
var iframe = document.getElementById('test');
// define variable 'a'
var content = "<html><body><script>var a=555;</script></body></html>";
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(content);
iframe.contentWindow.document.close();
// uncomment this to clean the iframe
//document.getElementById('wrapper').innerHTML= "<iframe id='test'></iframe>";
// write 'a' if defined
var content2 = "<html><body><div id='content'></div><script>document.getElementById('content').innerHTML=typeof a === 'undefined' ? 'undefined' : a;</script></body></html>";
var iframe2 = document.getElementById('test');
iframe2.contentWindow.document.open();
iframe2.contentWindow.document.write(content2);
iframe2.contentWindow.document.close();
Si vous exécutez ce code, vous verrez la sortie du deuxième iframe est 555
bien qu'il ait été défini dans le premier iframe.
Si vous décommentez la partie centrale, cela fonctionnera comme prévu.
question connexe: Avoiding memory leaks loading content into an iframe
vous pouvez simplement supprimer et créer un nouveau iframe. –
'$ (" # frameID "). Attr (" src "," ")' fonctionne très bien pour moi sur Firefox 11. Si vous voulez vraiment un iframe vierge, vous pouvez également essayer de régler le 'src' à' about: blank' au lieu d'une chaîne vide. –
@IlmariKaronen 'about: blank' fonctionne à merveille !!! – TheVillageIdiot