Dê uma olhada neste HTML simples:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Digamos que eu queira mover os envoltórios para que o #wrap2
seja antes do #wrap1
. Os iframes são poluídos por JavaScript. Estou ciente de jQuery's .insertAfter()
e .insertBefore()
. No entanto, quando eu os uso, o iFrame perde todas as variáveis e eventos HTML e JavaScript.
Digamos que o seguinte fosse o HTML do 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>
No código acima, a variável variableThatChanges
... mudaria se o usuário clicasse no corpo. Esta variável, e o evento de clique, devem permanecer após o iFrame ser movido (junto com quaisquer outras variáveis / eventos que foram iniciados)
Minha pergunta é a seguinte: com JavaScript (com ou sem jQuery), como posso mover os nós de wrap no DOM (e seus filhos iframe) para que a janela do iframe permaneça a mesma e os eventos / variáveis / etc do iframe permaneçam os mesmo?