Hãy xem HTML đơn giản này:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Giả sử tôi muốn di chuyển các kết thúc sao cho #wrap2
có trước #wrap1
. Các iframe bị ô nhiễm bởi JavaScript. Tôi biết về jQuery .insertAfter()
và .insertBefore()
. Tuy nhiên, khi tôi sử dụng chúng, iFrame sẽ mất tất cả HTML và các biến và sự kiện JavaScript.
Giả sử sau đây là HTML của 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>
Trong đoạn mã trên, biến variableThatChanges
sẽ ... thay đổi nếu người dùng nhấp vào nội dung. Biến này và sự kiện nhấp chuột sẽ vẫn còn sau khi iFrame được di chuyển (cùng với bất kỳ biến / sự kiện nào khác đã được bắt đầu)
Câu hỏi của tôi là như sau: với JavaScript (có hoặc không có jQuery), làm cách nào tôi có thể di chuyển các nút bọc trong DOM (và các nút con iframe của chúng) để cửa sổ của iFrame vẫn giữ nguyên và các sự kiện / biến / v.v. của iFrame vẫn giữ nguyên tương tự?