Взгляните на этот простой HTML:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Скажем, я хотел переместить обертки так, чтобы #wrap2
был перед #wrap1
. Ифрагмы загрязнены JavaScript. Я знаю jQuery .insertAfter()
и .insertBefore()
. Однако, когда я их использую, iFrame теряет все свои HTML и переменные JavaScript и события.
Допустим, что следующим текстом был iFrame HTML:
<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>
В приведенном выше коде переменная variableThatChanges
изменилась бы, если пользователь щелкнул по телу. Эта переменная и событие click должны оставаться после перемещения iFrame (вместе с любыми другими переменными/событиями, которые были запущены)
Мой вопрос следующий: с JavaScript (с jQuery или без него), как я могу перемещать узлы переноса в DOM (и их дочерние элементы iframe), чтобы окно iFrame оставалось прежним, а события iFrame/variables/etc остаются неизменными?