Creo que el innerhtml no es estandar.
Mira el código de esta página:
http://www.telecable.es/personales/nriquegg4/
Al dar clic al botón desaparece este y aparece una imagen y luego al dar clic a la imagen esta desaparece y aparece el botón.
La imagen ya está en el código pero con display='none' y al dar al botón lo cambia a 'block'.