Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2006, 15:33
safe
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
agregar evento onclick en internet explorer

Hola a todos,

hace un tiempo que uso una funcion javascript que encontre para cambiar el target a _blank de todos los enlaces a los que le aplico rel='externalLink' (cuestion de accesibilidad)... La funcion es bastante sencilla: recorre todos los enlaces de una pagina y si encuentra el atributo rel con el valor externalLink le asigna el valor _blank al atributo target.

Ahora en medio de un desarrollo se me ocurrio utilizar el mismo principio para agregar un muy simple funcion de confirmacion a todos los enlaces que sirvan para borrar algun elemento.
El cambio que tuve que hacer fue minimo y en breves minutos tenia la funcion funcionando a la perfeccion en firefox y en opera. Pero claro... dicha funcion no me funciona en el queridisimo internet explorer.
Investigando, me entere de que el problema es que IE no permite agregar eventos onclick (y no se si algun otro) mediante setAttribute('onclick', 'algo()'), como si permiten otros navegadores.
Hice varias pruebas al respecto (elem.onclick = funcion; - elem.onclick = { funcion} ) y nada, la mayoria funciona en los otros navegadores pero IE sigue ignorandolo olimpicamente. Asi que, despues de recorrer la web de punta a punta buscando una solucion, caigo frente a ustedes para ver si alguien a enfretado el mismo problema y ha encontrado alguna solucion.
El codigo de la funcion que uso es el siguiente:

Código:
function eliminar() 
{
	if (!document.getElementsByTagName) return;
	
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) 
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("class") == "eliminar")
		{
			anchor.setAttribute('onclick','borraritem()');
		}
	}
}
Una de las soluciones que encontre analizando algunas paginas referidas al DOM fue crear el elemento directamente con la funcion onclick adentro (ejemplo: document.write("<a href='#' onclick='algo()'>borrar</a>"); ).
Pero como yo no tengo que crear el elemento, sino simplemente agregarle la funcion, no me sirve. Asi que pense en volver a crear el enlace directamente con javascript (borrar y volver a crear), pero todavia no he dado con algo que funcione.

Desde ya agradesco cualquier ayuda de su parte.
__________________
oohh... quisiera ser godines!!!