最佳答案
看看这个简单的 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 变量和事件。
假设下面是 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 的事件/变量/等保持不变?