Hallo Martin,
Hmmm... onload is wirklich besser. Die User ohne JS kannst du umgehen, indem die CSS-Eigenschaft (display) bzw. den Container, der ihn aufnimmt, selbst auch mit JS schreibst:
<body onload="document.getElementById('preload').style.display = '';">
<script type="text/javascript">
<!--
document.write('<div id="preload" style="display: none;">');
// -->
</script>
...
<script type="text/javascript">
<!--
document.write('</div>');
// -->
</script>
</body>
MfG Benjamin