Dai un'occhiata a questo semplice HTML:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Diciamo che volevo spostare gli involucri in modo che #wrap2
fosse prima del file #wrap1
. Gli iframe sono inquinati da JavaScript. Sono a conoscenza di jQuery .insertAfter()
e .insertBefore()
. Tuttavia, quando li uso, l'iFrame perde tutte le sue variabili ed eventi HTML e JavaScript.
Diciamo che il seguente era l'HTML dell'iFrame:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
// The variable below would change on click
// This represents changes on variables after the code is loaded
// These changes should remain after the iFrame is moved
variableThatChanges = false;
$(function(){
$("body").click(function(){
variableThatChanges = true;
});
});
</script>
</head>
<body>
<div id='anything'>Illustrative Example</div>
</body>
</html>
Nel codice sopra, la variabile variableThatChanges
cambierebbe ... se l'utente facesse clic sul corpo. Questa variabile e l'evento clic devono rimanere dopo lo spostamento dell'iFrame (insieme a qualsiasi altra variabile / evento che è stato avviato)
La mia domanda è la seguente: con JavaScript (con o senza jQuery), come posso spostare i nodi di wrap nel DOM (e i loro figli iframe) in modo che la finestra dell'iFrame rimanga la stessa e gli eventi / variabili / ecc dell'iFrame rimangano stesso?