Foros del Web » Programando para Internet » Javascript »

problema con chrome y javascript

Estas en el tema de problema con chrome y javascript en el foro de Javascript en Foros del Web. buenas tardes tengo un problema en mi pagina. En mozila funciona bien pero en chrome y IE no funciona. tengo este HTML Cita: <input type='buton' ...
  #1 (permalink)  
Antiguo 16/12/2011, 15:55
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
problema con chrome y javascript

buenas tardes tengo un problema en mi pagina. En mozila funciona bien pero en chrome y IE no funciona.


tengo este HTML
Cita:
<input type='buton' onclick='mifuncion("1")' value='crear elemento' name='btn1' />

<div id='div-respuesta'></div>


tengo en javascript el sgte codigo

Cita:
mifuncion2(valor){

alert(valor);

}

mifuncion(par){

if(par=="1")
onclick = 'mifuncion2("el parametro enviado fue 1");';
else
onclick = 'mifuncion2("el parametro enviado fue 2");';

document.getElementByID('div-respuesta').innerHTML = "<input type='buton' onclick='"+onclick+"' value='mostrar mensaje' name='btn2' />";

}

Al revisar el problema me doy cuenta que este esta en la variable onclick ya que si pongo la funcion directamente en la asignacion del inner me funciona bien.


Porque en mozila me funciona, y un dia hace meses tambien funcionaba en chrome ?
  #2 (permalink)  
Antiguo 16/12/2011, 16:34
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 chrome y javascript

buenas...
primero, no se si ha sido un despiste de tu parte pero tienes muchos errores sintácticos. algunos: el nombre del método para obtener un elemento por id, el tipo de botón de los inputs, falta la declaración function para las funciones. y segundo, el problema original. estas usando identificadores para tus variables que coinciden con identificadores predefinidos por el navegador: onclick. como en la función no estas declarando que dicha variable es local, entonces javascript la crea en global. como el objeto global es window y tambien acepta eventos, entonces lo que javascript intenta hacer es asignar el string al evento onclick de global (window). en el caso de chrome, parece que no te permite asignarle otra cosa que no sea una función o null. por tanto, onclick es inmutable y se queda con el valor original: null. cuando haces la concatenación, lo que estas uniendo es el string y null. por tanto, nunca te va funcionar como esperabas.

tienes dos opciones. la mejor es nunca utilizar identificadores para tus variables/propiedades/funciones iguales a los que el navegador predefine. y la segunda, declarar la variable como local a la función.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 16/12/2011 a las 23:48
  #3 (permalink)  
Antiguo 16/12/2011, 23:41
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: problema con chrome y javascript

Buenas noches, la verdad esto me estaba causando muchos dolores de cabeza y estaba pensando mal ya de chrome sin pensar que el error era mio al fin, los errores sintácticos es causa de escribir el codigo directamente en el foro ya que en el codigo original lo tengo bien, el problema efectivamente estaba en la declaracion de las variables, onclick fue el error y la solucion fue sencilla tan solo vasto colocar var onclick, y listo.

muchas gracias zerokilled, es bueno contar con la ayuda de la experiencia de todos para resolver problemillas como estos.

Etiquetas: chrome, funcion, html, input
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 13:41.