Я бы вашу задачу наверно решил бы так:
<html>
<head>
<script type="text/javascript">
function getPreview(textareaName)
{
// Получаем содержание textarea:
var textareaContent = document.getElementsByName(textareaName)[0].value;
// Открываем новое окно:
var previewFeatures = "menubar=no,location=no,status=no,width=800,height=600";
var previewWindow = window.open('about:blank', 'preview', previewFeatures);
var previewDoc = previewWindow.document;
// Создаем контент документа:
previewDoc.open();
previewDoc.write('<html><head>');
// Тут можно подсоеденить файл стилей (если нужно):
previewDoc.write('<style></style>');
previewDoc.write('</head><body>');
previewDoc.write(textareaContent);
previewDoc.write('</body></html>');
previewDoc.close();
}
</script>
</head>
<body>
<form name="myForm" action="">
<textarea name="myTextarea"></textarea><br />
<input type="submit" value="Отправить" />
<input type="button" value="Предпросмотр" onclick="getPreview('myTextarea')" />
</form>
</body>
</html>