Foros del Web » Programando para Internet » Javascript »

problema con onfocus en internet explorer

Estas en el tema de problema con onfocus en internet explorer en el foro de Javascript en Foros del Web. Hola a tod@s Tengo un polstergate con JS por culpa del dichos IE de M. Estoy implementando una función que esta servirá para borrar el ...
  #1 (permalink)  
Antiguo 10/05/2011, 15:43
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
problema con onfocus en internet explorer

Hola a tod@s

Tengo un polstergate con JS por culpa del dichos IE de M.

Estoy implementando una función que esta servirá para borrar el texto de un input al poner el foco allí.
fácil no? Lo he hecho así:

<input type="text" name="destination" id="destination" onfocus="delete_input(this, 'string')" />

function delete_input(eleinput, value){
if(eleinput.value==value) eleinput.value = "";
}

resulta que con IE me da un error que esperaba un objeto. La función va perfecta ya que todos los browsers normales funcionan bien. Hasta poniendo un simple alert en la función me peta, se ve que no le mola que le pases funciones en este atributo, pero con onclick más de lo mismo.
Lo he solucionado poniendo todo inline

onfocus="if(this.value=='string')this.value='';" />

Pero me surge la gran duda porque no va de la primera manera. ¿Sabéis algo? Saludos y gracias!!!
__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com
  #2 (permalink)  
Antiguo 10/05/2011, 15:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: problema con onfocus en internet explorer

buenas,
estoy casi seguro que el problema va porque tienes conflicto de identificadores. especificamente me refiero a que estas usando un mismo nombre (token o identificador) tanto en html como en javascript. debes tener cuidado particularmente en iexplorer porque dicho navegador genera automaticamente variables globales de elementos con atributo ID dandole a la variable por nombre el mismo valor de la ID. de todos modos, en teoria el primer ejemplo deberia funcionarte en iexplorer.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 11/05/2011, 01:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: problema con onfocus en internet explorer

Hola, no se si te pillo mucho.

Lo que me dices es que me está duplicando el ID en HTML y en JS.

El ID destination, no lo repito en ningún lado de la web.

Pero a mi el problema es que no me deja poner una simple función estilo

function alerta(text_string){

alert(text_string);

}

Esto también afecta al ID ? Podrías explicarme un poco más? thank!!
__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com
  #4 (permalink)  
Antiguo 11/05/2011, 02:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: problema con onfocus en internet explorer

no, no me refiero a que estes duplicando el ID. lo que me refiero es que si tienes un elemento con ID, por ejemplo <div id="mi_div"></div>, automaticamente iexplorer crea una variable con el nombre mi_div el cual es una referencia de dicho <div>. entonces luego, si tienes algun identificador con el mismo nombre, por ejemplo una funcion o variable, puedes tener conflicto.

Código:
<div id="un_div">...</div>
<script>
un_div = function(){};
// iexplorer genera error ;
</script>
de forma similar, tambien sucede cuando usas los mismos identificadores asignado en el atributo name de los elementos del form cuando usas script en el contexto de atributos. pero ya esto sucede en todos los navegadores y es normal debido a un modelo que define el DOM.
Código:
<script>
function fn(){}
</script>
<form>
<input name="fn" onclick="fn();" />
<!-- genera error en todos los navegadores debido al orden de resolucion de identificadores -->
</form>
de todos modos, este ultimo ejemplo no es tu caso porque el script te funciona en otros navegadores. incluso, es imposible de determinar si el primer ejemplo sea tu caso al no tener el codigo para comprobarlo. tambien podria ser que la funcion que invocas no esta definida, por supuesto, segun iexplorer.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 11/05/2011, 04:19
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: problema con onfocus en internet explorer

Hola, gracias otra vez :)

Pues con este nombre de función no tengo ningún ID que se pueda llamar igual. Es raro.

Pero he hecho una simple prueba con:

<input type="text" name="destination" id="destination" onfocus="alerta()" />

function alerta(){
alert("sa");
}
y también me dice que se esperaba un objeto.
Esto me pasa en todas las funciones JS que contiene onfocus, onclick, etc...

Saludos
__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com
  #6 (permalink)  
Antiguo 11/05/2011, 05:28
 
Fecha de Ingreso: diciembre-2004
Mensajes: 296
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: problema con onfocus en internet explorer

Joder tenía esto
<script type="application/javascript" src="/js/functions.js"></script>

en vez de esto
<script type="text/javascript" src="/js/functions.js"></script>

Muchas gracias zerokilled!!!
__________________
Visitar:
www.vinosyrecetas.com
www.galerias-arte.com

Etiquetas: explorer, internet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.