Взгляните на этот простой 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.
Допустим, 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
изменится, если пользователь нажмет на тело. Эта переменная и событие click должны остаться после перемещения iFrame (вместе с любыми другими запущенными переменными / событиями)
У меня следующий вопрос: с JavaScript (с или без jQuery), как я могу переместить узлы переноса в DOM (и их дочерние элементы iframe), чтобы окно iFrame оставалось неизменным, а события iFrame / переменные / и т.д. остаются прежними?