Foros del Web » Programando para Internet » Javascript »

Problemas con NetScape

Estas en el tema de Problemas con NetScape en el foro de Javascript en Foros del Web. 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];...
  #1 (permalink)  
Antiguo 26/01/2002, 20:51
 
Fecha de Ingreso: enero-2002
Mensajes: 29
Antigüedad: 22 años, 10 meses
Puntos: 0
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];
  #2 (permalink)  
Antiguo 27/01/2002, 01:45
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Re: Problemas con NetScape

No debería darte problemas, yo hago uso intensivo de los arrays y no he tenido problemas. ¿Puedes poner mas detalles? algo así como la inicialización, las propiedades que usas, o un ejemplo completo.

Además...¿A que versión de NetScape te refieres?
  #3 (permalink)  
Antiguo 27/01/2002, 11:49
 
Fecha de Ingreso: enero-2002
Mensajes: 29
Antigüedad: 22 años, 10 meses
Puntos: 0
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.
  #4 (permalink)  
Antiguo 27/01/2002, 16:23
 
Fecha de Ingreso: enero-2002
Mensajes: 29
Antigüedad: 22 años, 10 meses
Puntos: 0
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.
  #5 (permalink)  
Antiguo 27/01/2002, 17:54
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
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>
  #6 (permalink)  
Antiguo 27/01/2002, 19:59
 
Fecha de Ingreso: enero-2002
Mensajes: 29
Antigüedad: 22 años, 10 meses
Puntos: 0
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...
  #7 (permalink)  
Antiguo 27/01/2002, 20:46
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
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.
  #8 (permalink)  
Antiguo 28/01/2002, 12:37
 
Fecha de Ingreso: enero-2002
Mensajes: 29
Antigüedad: 22 años, 10 meses
Puntos: 0
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.......

  #9 (permalink)  
Antiguo 29/01/2002, 00:13
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
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.
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:45.