el problema está en que los evento en línea se producen antes que los eventos embebidos, por lo tanto primero se ejecuta la función "myFunction()" y después se ejecuta la función anónima asignada a window. para solventarlo, en la función anónima, antes de nada, has de usar una condicional tal que así
Cita: if (e.target.id == 'rec') { return false;}
siendo "rec" la id del control button