La cosa più semplice è attingere agli elementi che vuoi inserire nel box dinamico da un box statico, opportunamente inserito nel documento e non visualizzato (per esempio impostando la proprietà CSS display: none;").
Poi dai a JavaScript il compito di inserire il contenuto al verificarsi dell'evento desiderato:
codice:
<html>
<head>
<title>JS labz</title>
<script language="javascript" type="text/javascript">
<!--
function insertContent() {
document.getElementById('target').innerHTML = document.getElementById('source').innerHTML;
}
//-->
</script>
</head>
<body>
<div id="target">Questo è il layer "target", in cui visualizzare il
contenuto nascosto del layer "source".</div>
Insert content
<div id="source" style="display: none;">
Contenuto del layer "source", pieno di codice da far visualizzare nel layer "target"...
etc etc etc...</div>
</body>
</html>
Nota: la proprietà innerHTML è una proprietà di lettura e scrittura; l'ho usata per brevità ed è molto comoda ma non è conforme agli standard W3C; inizialmente era una feature proprietaria inventata da Microsoft, poi però la sua implementazione si è rapidamente estesa anche agli altri browsers.
Qui hai una accesa discussione sull'utilizzo della proprietà innerHTML invece dei metodi corretti del DOM.