JavaScript - Esta clase no admite Automatización

 
Vista:

Esta clase no admite Automatización

Publicado por Cody (4 intervenciones) el 15/02/2007 12:33:40
Hola a tod@s,

dentro de un formulario, mediante un botón, llamo a esta función, q abre una nueva ventana que me permite adjuntar un archivo:

function abrir_ventana(url){
var left = Math.floor( (screen.width - 650) / 2);
var top = Math.floor( (screen.height - 400) / 2);

var ventana=open(url,'','width=650,height=400,top='+top+',left='+left);
if(ventana==null)alert('Desactiva el bloqueador de ventanas del navegador');
}

Seguidamente desde la ventana que abro, pretendo modificar el valor de un campo del primer formulario, mediante la siguiente función en el submit mediante php:

print('<script language="javascript">');
print('window.opener.document.forms[0].'.$campo.'.value="'.$filename.'";');
print('window.opener.document.getElementById("'.$campo.'src").innerHTML="<img src=\"'.$rutaimagenes.'/'.$filename.'\">";window.close()</script>');

El problema es que me da el siguiente error de Javascript al ejecutar window.opener.document.forms[0].(nombrecampo).value=XXXXXX:

"Esta clase no admite Automatización".

Alguien me puede ayudar?? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Esta clase no admite Automatización

Publicado por Gonzalo (107 intervenciones) el 15/02/2007 13:10:43
Déjame adivinar...

El campo que intentas modificar (document.forms[0].(nombrecampo)) es de tipo file, ¿verdad? Pues el problema es que en los <input type="file" ... /> *no* se puede asignar un valor, ni poniendo <input type="file" value="..." /> ni por medio de Javascript.

Esto es por motivos de seguridad. Imagina que te digo que visites mi página y tengo un formulario que se envía automáticamente con un input file apuntando a tus ficheros de contraseñas del sistema o a otros ficheros con información privada.

La única manera de poner un valor en un <input type="file" ... /> es que el usuario pinche el botón y explícitamente seleccione un fichero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Cody (4 intervenciones) el 15/02/2007 13:53:25
No, no és de tipo "file", es de tipo "hidden". Yo creo q va a ser algún problema de la configuración del Internet Explorer 7, porque el mismo código lo ejecuto en Mozilla y si que funciona.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Gonzalo (107 intervenciones) el 15/02/2007 14:36:33
Mmm... eso es más extraño.

Prueba lo siguiente. Donde haces la asignación esa, pon un:
print('alert(window.opener.document.forms[0].'.$campo.'.name + ": " + window.opener.document.forms[0].'.$campo.'.value);');

Simplemente para ver si eso te funciona correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Cody (4 intervenciones) el 15/02/2007 15:25:57
Muchas gracias, pero me sigue dando el mismo error!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Gonzalo (107 intervenciones) el 15/02/2007 20:08:09
Una pregunta tonta:

Cuando decías window.opener.document.forms[0].(nombrecampo).value=XXXXXX:
supongo que esos paréntesis no estarán ahí en el código real, ¿no? Lo pregunto por si acaso, pero entiendo que no, que te refieres a window.opener.document.forms[0].nombrecampo.value=XXXXXX;

Por cierto, el error este, ¿te sale así exactamente? ¿No dice nada más?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Cody (4 intervenciones) el 16/02/2007 12:24:41
Hola Gonzalo,

muchas gracias por todas tus respuestas!! Respondo a tu pregunta: efectivamente (nombrecampo) no están en el código real!! G g. El error este es muy extraño. He probado a ejecutar el código en otros pc's y si funciona! He estado comparando mis "Opciones" del Internet Explorer 7 con las de mi compañero y son exactamente iguales, y en su pc se puede ejecutar y en mi pc sale el famoso error. Bueno, seguiré investigando. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Esta clase no admite Automatización

Publicado por Gonzalo (107 intervenciones) el 16/02/2007 16:26:01
Ahora que dices que en tu PC no funciona pero en otros sí... y habiendo mirado por ahí... a lo mejor no se trata de una configuración, sino de que no tengas bien instalado algún componente del Windows Scripting host. Prueba a reinstalarlo.

Lo puedes bajar de la página de Microsoft: http://www.microsoft.com/downloads/details.aspx?FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa&DisplayLang=en
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar