Estimado, no soy experto en esto, pero me suena muy posible que la página haya terminado de cargarse antes de que se ejecute el script; y por lo tanto el evento load se dispara antes de que cuelgues tu listener. Es perfectamente posible que esto no pase en Internet Explorer, porque es más lento para cargar las páginas.
Si tenés manera, luego del addEventListener poné algunas líneas más de código preguntando si la página ya está cargada. Si ya se cargó, llamá dofirst directamente.
Por otro lado lo que yo vi es que se muy común poner los scripts al final del body, de manera que se ejecuten luego de que se ha leído la página completa. En este caso ni necesitás colgarte al evento load, sino que ejecutás el contenido de dofirst() directamente.