Foros del Web » Programando para Internet » Javascript »

Identificar si un parametro es un atributo o un evento

Estas en el tema de Identificar si un parametro es un atributo o un evento en el foro de Javascript en Foros del Web. He recuperado todos los atributos de una etiqueta en un array, ahora deseo identificar si uno de estos valores es un atributo o un evento... ...
  #1 (permalink)  
Antiguo 24/02/2009, 13:20
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Identificar si un parametro es un atributo o un evento

He recuperado todos los atributos de una etiqueta en un array, ahora deseo identificar si uno de estos valores es un atributo o un evento...

Ej: Identificar si es onclick, onmous.. o tittle, name...

Si se podría analizar todos los que comienzan por on, pero existe una mejor manera?
  #2 (permalink)  
Antiguo 24/02/2009, 13:30
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Identificar si un parametro es un atributo o un evento

No que yo sepa:

/^on(.*)/i.test( atributo );

Saludos.

Última edición por jseros; 24/02/2009 a las 13:37 Razón: Falto una letra
  #3 (permalink)  
Antiguo 24/02/2009, 13:44
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Respuesta: Identificar si un parametro es un atributo o un evento

los eventos son funciones asi que puedes hacer una comparación para saber si es de tipo function.

saludos
  #4 (permalink)  
Antiguo 24/02/2009, 16:05
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Identificar si un parametro es un atributo o un evento

Bueno, una forma corta de validar podría ser

var mifuncion = 'prueba';

if(!mifuncion){//No es función

Pero esperaba que existiera algo mas...fiable y optimo que esto, o no tener que utilizar expresiones regulares o .substring(0,2)!='on', alguna función propia del lenguaje...

muchas gracias a todos, son buenos los aportes...
  #5 (permalink)  
Antiguo 24/02/2009, 17:16
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Respuesta: Identificar si un parametro es un atributo o un evento

me refería a que hicieras una comparación de este tipo

https://developer.mozilla.org/en/Cor...ypeof_Operator

usando el operador "typeof" ;) ya que esto que pones

____
var mifuncion = 'prueba';
if(!mifuncion){//No es función
____

no es correcto para validad una función :s
  #6 (permalink)  
Antiguo 24/02/2009, 17:44
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Identificar si un parametro es un atributo o un evento

Pues puede que esto quiza te sirva:

function checkAtrrs(elemento){
var attrs = [];

//La funcion solo adimte un elemento, si se le pasan mas, solo validara el primero
if(typeof elemento != 'object')
elemento = elemento.item(0);

if(!elemento.hasAttributes())
return false;

for(var atributo = 0;atributo < elemento.attributes.length; atributo++){

var evento = elemento.attributes[atributo].name;

if(/^on(.*)/i.test(evento))
attrs.push(true);
else
attrs.push(false);
}

return attrs;
}


Puedes modificarla para que te regrese lo que tu desees.
  #7 (permalink)  
Antiguo 24/02/2009, 20:55
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Identificar si un parametro es un atributo o un evento

Tendriamos que ver si lo que tienes en el arreglo es el nombre o el valor del atributo.

En el caso de que sea el nombre del atributo:

Código PHP:
/^on(.*)/i.testatributo ); //verdadero si el atributo es un manejador de eventos 
en el caso de ser un valor no siempre este correspondera a una función, ya que no siempre he definido una para manipular el evento. Si intentas verificar que el valor que se ha asociado un evento sea una función pero a este no se le ha asociado nada solo recibiras un undefined.

ejemplo:

Código PHP:
alertdocument.getElementById"mi_div" ).onclick ); //devuelve undefined
... 
Código PHP:
...
document.getElementById"mi_div" ).onclick = function(){
          
alert"Haz hecho click" );
}
...
alertdocument.getElementById"mi_div" ).onclick ); //devuelve la funcion
... 

Es mejor que verifiques por el nombre del atributo.

Saludos.
  #8 (permalink)  
Antiguo 25/02/2009, 09:44
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
De acuerdo Respuesta: Identificar si un parametro es un atributo o un evento

Cita:
Iniciado por stock Ver Mensaje
me refería a que hicieras una comparación de este tipo

https://developer.mozilla.org/en/Cor...ypeof_Operator

usando el operador "typeof" ;) ya que esto que pones

____
var mifuncion = 'prueba';
if(!mifuncion){//No es función
____

no es correcto para validad una función :s
Por ello lo estoy buscando, por que no es correcto ninguno de los métodos y argumente que no es fiable... Ahora que pensándolo bien... , tu apunte puede ser MAS QUE acertado 'typeof' puede ser la solución...Lo había visto, pero no había tenido tiempo de informarme...(Me siento muy ignorante ) Solo resta probar el nivel de compatibilidad y si todo marcha bien, me quedo con el...

Gracias. Te envío un saludo y mi buen Karma.
  #9 (permalink)  
Antiguo 25/02/2009, 10:06
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Identificar si un parametro es un atributo o un evento

typeof, -> unsuccessful, Uneintreibbar...

Lastima... pero de todas formas el dato no es para nada intrascendente en el desarrollo, lo tendré muy presente.

Gracias.
  #10 (permalink)  
Antiguo 25/02/2009, 10:15
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Identificar si un parametro es un atributo o un evento

Cita:
Iniciado por jseros Ver Mensaje
Tendriamos que ver si lo que tienes en el arreglo es el nombre o el valor del atributo.

En el caso de que sea el nombre del atributo:

Código PHP:
/^on(.*)/i.testatributo ); //verdadero si el atributo es un manejador de eventos 
en el caso de ser un valor no siempre este correspondera a una función, ya que no siempre he definido una para manipular el evento. Si intentas verificar que el valor que se ha asociado un evento sea una función pero a este no se le ha asociado nada solo recibiras un undefined.

ejemplo:

Código PHP:
alertdocument.getElementById"mi_div" ).onclick ); //devuelve undefined
... 
Código PHP:
...
document.getElementById"mi_div" ).onclick = function(){
          
alert"Haz hecho click" );
}
...
alertdocument.getElementById"mi_div" ).onclick ); //devuelve la funcion
... 

Es mejor que verifiques por el nombre del atributo.

Saludos.
Si, finalmente creo que lo más fácil es verificar por el atributo...y podría valer esta expresión regular... /^on(.*)/, que era lo que deseaba evitar.

Un saludo y muchas Gracias.
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 10:52.