no puedes usar por un lado scripts dentro del html y una función que detecte el DOM cargado, debes hacerlo todo en la misma función del DOM cargado, por lo cual no puedes usar document.write, utiliza funciones del DOM como:
document.
getElementById('fondo').style.
backgroundSize = ancho+'px';
además el problema puede ser porque el CSS baclground-size es parte de CSS3 y no está asimilada por completo en la mayoría de los navegadores:
http://www.cssblog.es/css-background-size/