Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2012, 11:41
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Problema raro al invocar una función con el evento onLoad

Buenas tardes:
Veamos, tengo una página COTIZACIONES.ASP que se abre en una ventana adicional, y que tiene combo box que tiene en el evento onChange="listadosCotizaciones(this.value)" la llamada a la función listadosCotizaciones(this.value) que tiene este código:

Cita:
function listadosCotizaciones(n)
{
LeftPosition=(screen.width)?(screen.width-700)/2:100;
TopPosition=(screen.height)?(screen.height-450)/2:100;

if(n==1)
{ventana=window.open("listadoCotizaciones.asp", "listaCotiza", "left="+LeftPosition+",top="+TopPosition+",width=7 00,height=450,scrollbars=0,directories=0,toolbar=0 ,location=0,status=0,resizable=0,menubar=0");}

if(n==2)
{ventana=window.open("listadoCotizaciones.asp?filt ro=ok", "listaCotiza", "left="+LeftPosition+",top="+TopPosition+",width=7 00,height=450,scrollbars=0,directories=0,toolbar=0 ,location=0,status=0,resizable=0,menubar=0");}

ventana.focus();
}
Como ven no es nada del otro mundo: una página que se carga en un popup y este a su vez permite crear otro popup.

Lo que busco es que al cargar COTIZACIONES.ASP se cargue automáticamente una de las opciones del combo box, es decir, llamar a la función listadosCotizaciones(). Probé lo obvio (pasa un parámetro llamado mostrar)

Cita:
<body onLoad="foco.ini(); <% If Request("mostrar")="si" Then %>listadosCotizaciones(1);<% End If %>">
pues quiero que cargue la primera opción y lo hace, pero EN LA MISMA VENTANA, es decir, no genera una nueva ventana para nada. (foco.ini() sirve sólo para ubicar el foco en un campo del formulario que se muestra en la página COTIZACIONES.ASP

Igual probé una solución más larga

Cita:

<% If Request("main")="ok" Then %>
<body class="margenes" onLoad="foco.ini(); listadosCotizaciones(1);">
<% Else %>
<body class="margenes" onLoad="foco.ini();">
<% End If %>
Tengo la impresión de que es porque estoy llamando a la función con un valor ingresado "manualmente" y no con el this.value y estoy en lo correcto, no he encontrado aún información sobre como emular o reemplazar un evento por un dato manual.

Lo curioso del caso es que si tengo en COTIZACIONES.ASP esto desde el inicio

Cita:
<body onLoad="listadosCotizaciones(1);">
abre normal como debe ser, en otra ventana. El asunto esta cuando incluyo una condicional con ASP en el body.

¿Alguna idea o sugerencia?

Muchas gracias por el apoyo
Un saludo desde Lima, Perú


SOLUCIONADO
Definitivamente necesito descansar jejeje... ambas ventanas tenían el mismo nombre, me pego un tiro

Última edición por freesoftwarrior; 20/04/2012 a las 13:58 Razón: Encontré la solución