Eche un vistazo a este sencillo HTML:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Digamos que quería mover las envolturas para que #wrap2
estuvieran antes de #wrap1
. Los iframes están contaminados por JavaScript. Soy consciente de jQuery .insertAfter()
y .insertBefore()
. Sin embargo, cuando los uso, el iFrame pierde todos sus eventos y variables HTML y JavaScript.
Digamos que lo siguiente fue el HTML de 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>
En el código anterior, la variable variableThatChanges
... cambiaría si el usuario hiciera clic en el cuerpo. Esta variable y el evento de clic deben permanecer después de mover el iFrame (junto con cualquier otra variable / evento que se haya iniciado)
Mi pregunta es la siguiente: con JavaScript (con o sin jQuery), ¿cómo puedo mover los nodos de envoltura en el DOM (y sus hijos iframe) para que la ventana de iFrame permanezca igual, y los eventos / variables / etc. de iFrame permanezcan como ¿mismo?