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