ดู 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 จะยังคงอยู่ เหมือนกัน?