Schauen Sie sich diesen einfachen HTML-Code an:
<div id="wrap1">
<iframe id="iframe1"></iframe>
</div>
<div id="warp2">
<iframe id="iframe2"></iframe>
</div>
Nehmen wir an, ich wollte die Wraps so verschieben, dass #wrap2
sie vor dem liegen #wrap1
. Die Iframes werden durch JavaScript verschmutzt. Mir sind jQuery's .insertAfter()
und bekannt .insertBefore()
. Wenn ich diese verwende, verliert der iFrame jedoch alle HTML- und JavaScript-Variablen und -Ereignisse.
Nehmen wir an, das Folgende war der HTML-Code des 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>
Im obigen Code variableThatChanges
würde sich die Variable ... ändern, wenn der Benutzer auf den Körper klickt. Diese Variable und das Klickereignis sollten nach dem Verschieben des iFrame (zusammen mit allen anderen Variablen / Ereignissen, die gestartet wurden) erhalten bleiben.
Meine Frage lautet wie folgt: Wie kann ich mit JavaScript (mit oder ohne jQuery) die Wrap-Knoten im DOM (und ihre iframe-untergeordneten Elemente) so verschieben, dass das Fenster des iFrame gleich bleibt und die Ereignisse / Variablen / etc des iFrame unverändert bleiben gleich?
inline-block
angezeigt werden. An dieser Stelle vermute ich eine generische Lösung (oder effektiv die Aussage, dass dies unmöglich ist). wäre angesichts des Interesses anderer am angemessensten.