La unii merge la altii nu ... window.opener

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

xman
Average Member
Mesaje: 139
Membru din: Sâm Feb 18, 2006 10:43 am
Localitate: Cluj-Napoca

La unii merge la altii nu ... window.opener

Mesajde xman » Mie Noi 07, 2007 11:23 pm

Buna seara oameni buni .

Am icercat sa facu un script de upload fisiere folosiid ajax si fara iframe .. Sincer nu am crezut ca o sa meraga , dar merge bine .. Insa nu la oricine .

Eu l-am testat pe IE6 , IE7 , FF si merge .
La unii a mers si pe IE si pe FF .
La altii pe nici unu .
La altii doar pe IE .

---------
index.php am : window.open

upload.php :(fereastra care se deschide) am <form> dupa ce se incarca fisierul apare un progress.gif , se face update la <div> din index.php si se inchide fereastra .

Sub butonul din index.php ar trebuie sa apara lista cu fisierele upload-ate .
Lucru care se intampla la unii si nu la toti .

Codul :

Cod: Selectaţi tot

timpul = null;
function showfiles(sesiunea)
      {
         var files = null;
         if(window.XMLHttpRequest)
         {
            files = new XMLHttpRequest();
         }
         else if(window.ActiveXObject)
         {
            try
            {
                  files = new ActiveXObject("Msxml2.XMLHTTP");
             }
            catch (e)
            {
                  try
                 {
                       files = new ActiveXObject("Microsoft.XMLHTTP");
                  }
                 catch (e1)
                 {
                       files = null;
                  }
             }
         }
         else
         {    
               alert("Browserul dumneavoastra nu suporta aceasta actiune ");
               var files = false;
         }
         
         var url = "upload.php?do=lista&sesiunea="+sesiunea;
         files.onreadystatechange = function()
         {   
            if(files.readyState == 4 && files.status == 200)
            {
               window.opener.document.getElementById('lista').innerHTML = files.responseText;
            }
         }
         
         files.open("GET",url,true);
         if(window.XMLHttpRequest)
         files.send(null);
         if(window.ActiveXObject)
         files.send();
      }

function init(sesiunea)
      {
          var fichiere    = window.parent.document.getElementById('continut');
         var imgs       = window.parent.document.createElement('img');
         imgs.src       = 'progress.gif';
         imgs.height      = '16';
         imgs.width      = '16';
         imgs.className    = 'load';
         fichiere.appendChild(imgs);
         window.parent.setTimeout("showfiles(" + sesiunea + ")", 10000);
         window.inchide();
      }

   function inchide()
      {
            timpul = setTimeout("self.close()",11000);
      }


Aveti vreo idee unde poate sa fie gresala mea ?

Subliniez faptul ca la toti fisierele s-au upload-at pe server , deci actiunea php a avut loc dar nu si ceea cu java ..

Mersi ...



xman
Average Member
Mesaje: 139
Membru din: Sâm Feb 18, 2006 10:43 am
Localitate: Cluj-Napoca

Mesajde xman » Vin Noi 09, 2007 11:44 pm

Nu ma poate ajuta nimeni ?

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Sâm Noi 10, 2007 1:55 pm

Fereastra se inchide inainte ca raspunsul serverului sa fi venit.
Functia showfiles() apelata de init(), instantiaza obiectul XMLHttpRequest care asteapta raspunsul de la server.
Functia init() continua executia si dupa 11000 ms inchide fereastra. In clipa asta nu mai exista opener.
Daca raspunsul serverului vine repede e OK, daca intarzie vine degeaba.
Eu zic sa pui inchide() in corpul functiei de la onreadystatechange (la sfarsit).

xman
Average Member
Mesaje: 139
Membru din: Sâm Feb 18, 2006 10:43 am
Localitate: Cluj-Napoca

Mesajde xman » Lun Noi 19, 2007 4:10 pm

dechim , mersi frumos ca ai raspuns .
Nici asa nu s-a rezolvat problema .
Si nici daca las doar raspunsul fara time ...

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Noi 19, 2007 5:51 pm

Atunci renunta in a mai face totul in fereastra noua.
Pune un <div> cu id undeva in pagina si afiseaza acolo progress-ul, iar ce primesti de la server scrie direct unde vrei fara opener.
N-am acum stare ca as face o proba.
Imediat ce am timp am sa incerc, poate-mi foloseste si mie.


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori