Foros del Web » Programando para Internet » Javascript » Frameworks JS »

HttpRequest deja de funcionar con window.opener

Estas en el tema de HttpRequest deja de funcionar con window.opener en el foro de Frameworks JS en Foros del Web. Estoy llamando a una funcion para actualizar un div. desde la misma pag funca bien, desde otra que abro con window.open y la llamo con ...
  #1 (permalink)  
Antiguo 28/10/2005, 16:07
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
HttpRequest deja de funcionar con window.opener

Estoy llamando a una funcion para actualizar un div.

desde la misma pag funca bien, desde otra que abro con window.open y la llamo con window.opener.GetInfo(); tambie. El problema es cuando quiero volver a llamarla desde la pag original luego de haberla llamado desde la ventana popup.

Ahi no anda.

La funcion es simple:

Código PHP:
var http createAjax();

function 
GetInfo(obj,tarea,plan) {
    
        var 
url 'ajax_tarea_reservas.php?accion=get&obj='+obj+'&id_tarea='+tarea+'&id_plan_produccion='+plan;        
    
http.open('get'url);
    
http.onreadystatechange handleResponse;
    
http.send(null);
}

function 
handleResponse() {
    if(
http.readyState == 4){
        var 
response http.responseText;
        var 
update = new Array();
                
                
//alert(response);
                
        
if(response.indexOf('|' != -1)) {
            
update response.split('|');
            
//alert(update[1]);
            //alert(update[6]);
            
document.getElementById('d_titulo').innerHTML update[5];
            
document.getElementById('d_volumenes').innerHTML update[1];
            
document.getElementById('d_reservas').innerHTML update[3];
        }
    }
    
    


idemas ????


agrego el hermoso error que me tira en la consola:
Cita:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/controlab/form_asis..._produccion=10 :: GetInfo :: line 40" data: no]


Puede ser que no me libere correctamente el XMLHTTPRequest al lamarlo desde otro window??
__________________
Keep it simple and keep it fast.

Última edición por Viet; 29/10/2005 a las 15:53
  #2 (permalink)  
Antiguo 02/11/2005, 04:43
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
Joder!... sigo con el mismo problema hace dias.

Es muy raro, lo que he llegado a notar es que ejecutar mi funcion con la misma variable url, me trae resultados normalmente desde mi ventana principal, al llamarlo desde un popup (otra ventana creada con window.open) con la forma window.opener.GetInfoI(), funciona la primera vez, pero luego no mas en ninguna ventana. Esto es porque aparece una exeption porque no hay datos en la respuesta del php.

Lo raro es que despues da esa exeption en la parte de captura de datos, porque no llego ninguna informacion, y probando la pagina.php que obtiene la info y la devuelve no le llega nunca la solicitud.... o sea nunca se ejecuta....

Ideas??????
__________________
Keep it simple and keep it fast.
  #3 (permalink)  
Antiguo 03/11/2005, 18:20
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Información Variables !!!

Holas... cuando hize mis primeras pruebas con ajax todo marchaba muy bien, pero cuando intenté usar la función que utilizaba el objeto HTTPRequest más de una vez en la misma página entonces ya no funcionaba tan bien y normalmente sólo se mostraba los resultados de la última llamada a la función. Luego de googlear y preguntar aqui y allá encontré la solución: VARIABLES, así es, el problema se puede corregir utilizando una variable distinta al utilizar el objeto HTTPRequest, puedes conseguirlo modificando tu función de manera que cuando la utilizes le pases como parámetro el nombre de una variable, un detalle que he notado en tu función es la llamada al método open: creo que necesitas un parámetro extra que le indica si la ejecución es síncrona(false) o asíncrona(true).
Código PHP:

function GetInfo(obj,tarea,plan,nvar) { 
     var 
nvar createAjax(); 
        var 
url 'ajax_tarea_reservas.php?accion=get&obj='+obj+'&id_tarea='+tarea+'&id_plan_produccion='+plan;         
    
nvar.open('get'url,true); 
    
nvar.onreadystatechange handleResponse(nvar); 
    
nvar.send(null); 


function 
handleResponse(nvar) { 
    if(
nvar.readyState == 4){ 
        var 
response http.responseText
        var 
update = new Array(); 
                 
                
//alert(response); 
                 
        
if(response.indexOf('|' != -1)) { 
            
update response.split('|'); 
            
//alert(update[1]); 
            //alert(update[6]); 
            
document.getElementById('d_titulo').innerHTML update[5]; 
            
document.getElementById('d_volumenes').innerHTML update[1]; 
            
document.getElementById('d_reservas').innerHTML update[3]; 
        } 
    } 
     
     

En este momento no puedo implementar tu código en esta pc, pero haz la prueba.
  #4 (permalink)  
Antiguo 03/11/2005, 19:09
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
Jcxnet, gracias por tu respuesta.

pero lo he probado y no me funciona de nunguna de las ventanas ahora.

Lo que no entiendo es porque deberia deginir GetInfo(x,x,x,nvar) si despues dentro de la funcion la redefeniria??

Lo probe tal cul me lo has pasada.....
__________________
Keep it simple and keep it fast.
  #5 (permalink)  
Antiguo 04/11/2005, 06:15
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Información

Cita:
Iniciado por Viet
Jcxnet, gracias por tu respuesta.

pero lo he probado y no me funciona de nunguna de las ventanas ahora.

Lo que no entiendo es porque deberia deginir GetInfo(x,x,x,nvar) si despues dentro de la funcion la redefeniria??

Lo probe tal cul me lo has pasada.....
Hola.. no hay redefinición de variable, simplemente en la llamada a la función GetInfo le pasas el nombre que tendrá tu variable:
GetInfo(x,x,x,'var1')
Si utilizas la función más de una vez en una misma página, entonces quedaría algo como:
GetInfo(x,x,x,'var1')
GetInfo(x,x,x,'var2')
No es necesario crear previamente var1 o var2, solo es un parámetro.
Si puedes me pasas tu código para hacer algunas pruebas.
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 19:27.