Grazie willybit della tua luce sulla questione

Visto il complesso contenuto HTML della variabile la funzione non andava, allora ho pensato ad un ulteriore passaggio al replace() per la sostituzione anche di apici doppi:

previousContent = previousContent.replace(/'/g,"\'");
previousContent = previousContent.replace(/"/g,'\"');


ma poi ho pensato: perché non avvalersi della funzione di Javascript dedicata proprio alla codifica di testo formattato per poterlo comodamente gestire nelle variabili?
Quindi ho passato all'escape() fin dall'inizio il contenuto HTML della variabile, poi la funzione finale che lo reinserisce nel layer provvede a decodificarlo con unescape():

codice:
<html>
<head>
<script language="javascript" type="text/javascript">
<!--
function fill(newContent) {
var d = document;

// Creo una copia del contenuto originale del layer nella variabile previousContent:
var previousContent = escape(d.getElementById('targetLayer').innerHTML);

// Sostituisco il contenuto del targetLayer:
d.getElementById('targetLayer').innerHTML = newContent;

// Dopo 2 secondi riporto il contenuto del targetLayer al suo valore originale:
window.setTimeout("LayerRefill('"+previousContent+"')", 2000);
}


function LayerRefill(a) {
document.getElementById('targetLayer').innerHTML = unescape(a);
}
//-->

</script>
</head>
<body>
prova
<hr>
<div id="targetLayer">Contenuto del 'div' targetLayer.</div>
</body>
</html>
e così funziona bene con qualsiasi tipo di input... Che ne pensi?
Grazie mille ancora!