En Internet Explorer no tengo inconveniente cuando hago referencia a un array. Pero NetScape no lo toma.
Ejemplos.:
1)alert("LisCod: " + LisCod.length);
2)document.form1.VAR_CODIGOITEM.value=LisCod[item];
| |||
Problemas con NetScape En Internet Explorer no tengo inconveniente cuando hago referencia a un array. Pero NetScape no lo toma. Ejemplos.: 1)alert("LisCod: " + LisCod.length); 2)document.form1.VAR_CODIGOITEM.value=LisCod[item]; |
| |||
Re: Problemas con NetScape Gracias por tu interes en ayudarme. El NetScape es la version 4.5 (Solo lo uso para probar compatibilidad). Aca va parte del codigo que involucra al problema. En un .js tengo definido: LisCod = new Array(); ..... y la funcion: function veriSelec(){ var conta=0; if (document.form1.CONTALI.value == 0) {} else { if (document.form1.CONTALI.value == 1) { document.form1.VAR_CODIGOITEM.value=LisCod[0]; item=0; } else { for(conta;conta<(document.form1.CONTALI.value); conta++){ if (document.form1.LIST2[conta].checked==true) { item=conta; document.form1.VAR_CODIGOITEM.value=LisCod[item]; conta = document.form1.CONTALI.value + 1; } } } } } -------- Y en pagina...este codigo es el que me carga el array (LisCod) entre otros, a la vez que me genera una tabla. <% var conta; conta = 0; while ((Repeat1__numRows != 0) && (!Recordset1.EOF)){ Response.Write("<script language = 'JavaScript'>;" + "\n"); Response.Write("<!-- ;" + "\n"); Response.Write("LisCod[" + conta + "]='" + (Recordset1.Fields.Item('CODITEM').Value) + "';" + "\n" ); Response.Write("LisNom[" + conta + "]='" + (Recordset1.Fields.Item('DESCRIPCION').Value) + "';" + "\n" ); Response.Write("LisPre[" + conta + "]='" + (Recordset1.Fields.Item('PRECIO').Value) + "';" + "\n" ); conta = (conta + 1); Response.Write("//--></script>"); %> ..... Luego dado algun evento, llama a la funcion.. Te repito que esto funciona en IE. |
| |||
Re: Problemas con NetScape Hola a todos: Olviden la pregunta anterior. El error está en la asignación dinámica de valores al array. No me toma en Netscape los Script dentro del Body????. No los veo cuando ejecuto la pagina y pido ver el fuente. (En IE sí). Y presumo que al no generarse el script la funcionalidad de los mismos desaparece. |
| ||||
Re: Problemas con NetScape JuanG, prueba el siguiente ejemplo que a mi me funciona en NetScape 6.0 e Internet Explorer 5.5 (no tengo versiones previas). Creo que tiene que funcionar, sino, hazmelo saber para chequear mas detenidamente. <html> <head> <script language="JavaScript"> var aTest = new Array(new Array("Fil0-Col0", "Fil0-Col1", "Fil0-Col2"), new Array("Fil1-Col0", "Fil1-Col1", "Fil1-Col2"), new Array("Fil2-Col0", "Fil2-Col1", "Fil2-Col2")); </script> </head> <body> <table border="1"> <script language="JavaScript"> var j; for (var i = 0; i < aTest.length; i++){ document.writeln("<tr>"); for (var j = 0; j < aTest[I].length; j++){ document.writeln("<td>" + aTest[j] + "</td>"); } document.writeln("</tr>"); } </script> </table> </body> </html> |
| |||
Re: Problemas con NetScape KAO: Tu rutina funciona bien en los dos navegadores. Porque lo que haces, es escribir codigo html por medio del script. Y lo que genera es dicho codigo y no se ve el script. Creo deducir que el NetScape interpreta el script del body en el servidor y genera el correspondiente html. En cambio en IE, lo interpreta dinamicamente en el cliente por eso yo veo el scrip en el body. Y lo que yo quiero hacer es una rutina que me carga los array. Esto mismo lo probé todo en ASP con Response.Write y funciona en uno y en el otro no. Este es el script que iría en el Body: <script language="JavaScript1.2"> LisCod[<%=conta %>]="<%=(Recordset1.Fields.Item('CODITEM').Va lue)%>"; LisNom[<%=conta%>]="<%=(Recordset1.Fields.Item('DESCRIPCION' ).Value.trim())%>"; LisPre[<%=conta %>]="<%=(Recordset1.Fields.Item('PRECIO').Val ue)%>"; </script> ...todo esto esta dentro de un while que va generando una tabla con esa informacion (codigo, descripcion y precio) La tabla con los datos sale bien en los dos Browser... |
| ||||
Re: Problemas con NetScape Creo que tu problema consiste en lo siguiente: El tag <%=Algo%> pertenece a la ampliación de HTML que es el ASP. Es decir, es otro tag más que vá a interpretar IIS. Cuando IIS se consigue con un tag <script language="JavaScript">, deja que ese código sea interpretado en su totalidad por JavaScript, por lo que el valor <%=Algo%> para JavaScript debe ser un error de sintaxis. IIS retoma su interpretación luego de </script> No soy ningún experto ASP, de hecho conozco el lenguaje pero no tengo ninguna aplicación completa en él. Te sugiero que preguntes esto en el foro de ASP a ver que nos responden. Si esto es así, creo que puedes interactuar mas comodamente con VBScript quien se debe entender con ASP. Cualquier noticia podemos revisar nuevamente. Suerte. |
| |||
Re: Problemas con NetScape Kao:Para aclarar algunos conceptos. Lo que yo puse de que con Netscape lo interpretaba en el servidor, es una BURRADA!! El servidor no puede adivinar anticipadamente si el cliente tiene un IE o un NN. Perdón. Las paginas vienen de una unica manera al cliente y depende de cada navegador como la interpreta. Respecto de tu sugerencia probé lo siguiente: <script language="JavaScript1.2"> LisCod[1]="115"; alert(LisCod[1]); </script> ....y no funcionó, asi que no es un problema de ASP o sus tag (<% %>). Luego probe: <script language="JavaScript1.2"> LisCod = new Array; LisCod[1]="115"; alert(LisCod[1]); </script> ....y funciono. Lo cual significa que en Netscape, la definicion de LisCod = new Array; que yo hago en un .js no me la toma, pero si me la toma en IE. EUREKA!!! Lo solucioné. Pasé las variables (arrays) definidas en el archivo .js al scrip que tengo en el Head de la pagina. Gracias Kao por tu ayuda....... |
| ||||
Re: Problemas con NetScape Me alegra que hayas podido resolver. De cualquier modo te digo que yo procuro user a NetScape como referencia porque Internet Explorer deja pasar muchos errores y muestra resultados aún cuando tu estés transgrediendo una especificación del lenguaje básica. Hoy me pasó que no coloqué entre comillas una expresión para ser evaluada en un eval() y el Internet Explorer que tengo instalado (5.5) me lo permitió y me mostró el resultado que yo esperaba. Aún cuando el MSDN especifica en la sintaxis las comillas. Es decir, IE es capaz de detectar un error e ignorarlo. Esto es bueno a veces, pero si como hoy me pasó, le envías ese código a alguien que tenga otro navegador (u otra versión del mismo IE), te revienta un error que hubieses podido atrapar si lo pasas por el filtro de NS. NS es muy serio en sus especificaciones, lamentablemente no abundan los manuales... Suerte. |