07. december 2005 - 14:56Der er
19 kommentarer og 1 løsning
load php script istedet for billede
Jeg bruger javascript til at vise hvor mange mails jeg har sendt ud...
Princippet er at et javascript åbner et php dokument der så sende 1 mail... det gøres så med alle de mails der sendes... jeg har strikket det sammen så det åbner php dokumentet som et billede... hvilket også virker fint i firefox... men IE fårker det op...
hvordan får jeg IE til at acceptere det?
//////////////// KODE //////////////// emails = new Array("adr@email.dk", "a@b.cd", "email@domæne.dk");
i = -1; nsImg = new Image(); tbts = 0; starttid = new Date().getTime();
function preload() { img = (document.all) ? document.images["pimg"] : nsImg; if (++i != 0 && document.all) tbts += Math.round(img.fileSize / 1024); pix = Math.round((500 / emails.length) * i); diff = (((new Date().getTime() - starttid) / (i / emails.length * 100)) * (100 - (i / emails.length * 100))) / 60000; document.getElementById("plpro").innerHTML = Math.ceil(diff) + " min."; document.getElementById("pl").innerHTML = i + " ud af " + emails.length + " mails sendt"; document.getElementById("plbar").style.width = pix; if (i >= emails.length) efterPreload(); else { img.src = emails[i]; if (!document.all) tjek(); } }
function tjek() { if (nsImg.complete) preload(); else setTimeout(tjek, 100); }
function efterPreload() { //Her defineres, hvad der skal ske, efter billederne er loadet //Hvis siden skal skifte, fjerner du bare de to slashes herunder: //self.location.href = "din_side.html"; }
Tjah, hvis du kigger i javascript-konsollet, vil du se, at den giver op på grund af for meget rekursion, og da der er to funktioner, der gensidigt kalder hinanden, kan jeg da godt forstå det !-)
Så tilføj en variabel mere:
i = -1; nsImg = new Image(); tbts = 0; starttid = new Date().getTime(); initiated = false;
-- og ændr slutningen af preload-funktionen:
if (i >= emails.length){ clearInterval(initiated); efterPreload(); }else { img.src = emails[i]; if (!document.all && !initiated) tjek(); }
-- og tilføj i tjek-functionen:
function tjek() { if (nsImg.complete) preload(); else initiated = setInterval(tjek, 100); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.