Foros del Web » Programando para Internet » Javascript »

Código que funciona en explorer pero no en Chrome

Estas en el tema de Código que funciona en explorer pero no en Chrome en el foro de Javascript en Foros del Web. Pues eso, tengo un par de códigos en javascript que me funcionan perfectamente en explorer, pero no lo hace en Chrome, y necesito que lo ...
  #1 (permalink)  
Antiguo 14/12/2012, 06:05
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Código que funciona en explorer pero no en Chrome

Pues eso, tengo un par de códigos en javascript que me funcionan perfectamente en explorer, pero no lo hace en Chrome, y necesito que lo haga en ambos. Os explico brevemente lo que hace cada uno.

1º)
En este caso se trata de un desplegable que está en un popup en el que si seleccionamos algun resultado, se copia el valor del campo a otro campo de la ventana que lanzó el popup; también se copia otro valor de otro campo distinto a otro campo de la ventana que lanzó el popup; a continuación se cierra el popup.

Código Javascript:
Ver original
  1. <select id="resultados" name="resultados" size="1" onchange = "opener.document.getElementById('num_doc').value = this.value;opener.document.getElementById('tipo_doc').value = this.document.getElementById('tipo').value; self.close()"  >

2º) Este es muy parecido pero con un botón en otro popup. Al pulsar el botón se copian tres valores a tres campos de la ventana que lanzó este popup y se cierra el popup.

Código Javascript:
Ver original
  1. <input type="button" name="Submit" value="Seleccionar" onclick = "opener.document.getElementById('no_muestra').value = this.document.getElementById('no_muestra<%=i%>').value;opener.document.getElementById('ref_almacen').value = this.document.getElementById('ref_almacen<%=i%>').value;opener.document.getElementById('referencia').value = this.document.getElementById('ref_almacen<%=i%>').value+'-'+this.document.getElementById('no_muestra<%=i%>').value; self.close()"/>

Como iba diciendo, en explorer funciona sin dar ningún problema, sin embargo, al ejecutarlo en Chrome no va como toca. En el primer caso, copia el primer valor, pero no copia el segundo ni cierra la ventana. En el segundo caso más de lo mismo, copia el primer valor (creo, es un campo oculto y no estoy seguro), pero no copia los demás ni cierra la ventana.

Alguna idea de como hacer que funcione correctamente en ambos?? Muchas gracias por adelantado, Salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 14/12/2012, 06:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Código que funciona en explorer pero no en Chrome

Prueba usar window.document en lugar de this.document.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/12/2012, 06:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Código que funciona en explorer pero no en Chrome

En el primer script es una restricción de seguridad de chrome, con haber visto la consola te hubieses dados cuenta

Cita:
Unsafe JavaScript attempt to access frame with URL file:///R:/open_pop_select.html from frame with URL file:///R:/pop_select.html. Domains, protocols and ports must match.
es decir, la script no corre desde file://, necesitar ejecutarla desde http.
Y te recomendaría que en casos así, además muestres un poco más detallado tu html, si no uno tiene que estar recreando y reconstruyendo archivos


abrir el pop
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7.     <button onclick="window.open('pop_select.html','nv','width=450,height=450');">pop</button>
  8. <form action="#">
  9. numdoc: <input type="text" value="" id="num_doc" /><br />
  10. tipodoc: <input type="text" value="" id="tipo_doc" /><br />
  11. </form>
  12. </body>
  13. </html>

el pop
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <form action="#">
  8. <select id="resultados" name="resultados" size="1" onchange = "opener.document.getElementById('num_doc').value = this.value;opener.document.getElementById('tipo_doc').value = document.getElementById('tipo').value; self.close()"  >
  9. <option value="A">A</option>
  10. <option value="B">B</option>
  11. tipo: <input type="text" value="" id="tipo" />
  12. </form>
  13. </body>
  14. </html>

En tú código esto no tiene que funcionar ni siquiera en IE (sólo completará el primer campo, pero no el segundo ni cerrará la ventana)

this.document.getElementById('tipo').value

por un lado no has definido el campo tipo (tu html está incompleto), por el otro, el this, te sobra porque se aplica al select, y yo adivino, a falta de otro dato, que tenés otro campo con id=tipo, tal cual puse en mi ejemplo


en el segundo script supongo debe pasar algo similar
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 14/12/2012, 06:40
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Respuesta: Código que funciona en explorer pero no en Chrome

Cita:
Iniciado por David Ver Mensaje
Prueba usar window.document en lugar de this.document.
He probado con esto y funciona a la perfección, tanto en chrome como en explorer. Muchas gracias
__________________
Vayamos por Partes :: Jack el Destripador

Etiquetas: chrome, explorer, funcion, input, resultados
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 18:31.