no funciona en iexplorer porque tienes el nombre de una variable que conflige con el id de un elemento. sucede que iexplorer automaticamente crea referencias de elementos con ID y las deposita como variables con el mismo nombre y las
protege. si intentas el siguiente ejemplo, veras que te genera error.
Código:
<p id="p">paragraph</p>
<script>
p = 0;
</script>
de la unica forma que iexplorer cede ese espacio es declarando las variables explicitamente como tal. el mismo ejemplo anterior.
Código:
<p id="p">paragraph</p>
<script>
var p = 0;
</script>
si aplicamos eso a tu caso, tendrias que declarar la variable
capa en la funcion. en definitiva, es mejor
evitar utilizar nombre de IDs como variables.