buenas,
la verdad, me parece un tanto incoherente ya que, como has indicado, los botones de navegación del navegador no se pueden controlar. de todos modos y si así lo deseas, no creo que necesites de otra función para habilitar/inhabilitar el bloqueo. en la misma función (el handler del evento) puedes agregar lineas adicionales para determinar en que que elemento inicio el evento. si es un input text o un textarea, puedes prescindir del resto de las lineas haciendo una salida prematura. es decir, un return cuando las condiciones son dadas. para determinar el elemento, puedes usar el objeto event que se genera y leer la propiedad target/srcElement para obtener el resto de la información.