This is the only way to write directly to the HTML document. But you can always change the content of a container element (for example a DIV, or table CELL) without using document.write, but using for example the innerHTML DOM property of an element:
var el = document.getElementById("content");
el.innerHTML = "<b>An example that modifies the HTML document</b>";
<div id="content"></div>
Using the code above you can write:
el.innerHTML = unescape('...');
An answer to the same question and a link to a DOM manipulation tutorial can be found in this SO post.