Dovresti spiegare meglio il tuo "non funziona". Significa che da` risultati sballati? che non fa nulla?
Comunque la proprieta` .innerHTML non e` supportata da tutti.
In alternativa si puo` scrivere dentro un campo di testo (eventualmente modificandone le caratteristiche di visualizzazione):
document.getElementById('ID_CAMPO').value = str;
In Netscape (N7+) comunque mi risulta che funzioni (a meno che non intendi NN4).