Avatar billede bearhugx Nybegynder
24. november 2003 - 05:17 Der er 4 kommentarer og
1 løsning

vente til childwindow er loaded helt færdigt

Hej eksperter

Jeg har en fil p.html (parent) som åbner en popup - lad os kalde den c (child)...

c har så en funktion, som jeg vil benytte - men jeg får nu at vide, at funktionen ikke eksisterer - forsøger jeg at kalde funktionen mens c-vinduet allerede er åbnet, så virker det fint...

Deraf konkluderer jeg at jeg ikke kan bruge funktionen før C er helt indhentet (onload) ...

spørgsmålet er så - hvordan kan jeg tjekke på C om dokumentet er helt loaded

jeg har forsøgt med følgende (som gav 1000% CPU belastning :-( )

c.html

<script>
  var isLoaded = false;
  function x() {
  }
</script>
<body onload="isLoaded = true;">
...
</body>


og parent

<script>
  function op() {
    myWin = window.open(.....)
    while(!myWin.isLoaded) {
    }
    myWin.x();
  }
</script>

Hvad skal jeg gøre ???

alle ideer er velkomne - da jeg gerne skal have en løsning på det hurtigst muligt (og meget gerne inden kl. 9 idag :-()
/Søren
Avatar billede bearhugx Nybegynder
24. november 2003 - 06:02 #1
jeg har fået det til at virke med et work-arround -- det er et hack - men virker godt nok for mig (også set deadlinen i betragtning) :

Det handler om at udsætte eksekveringen af
  myWin.x();

Jeg fandt følgende artikel
http://www.faqts.com/knowledge_base/view.phtml/aid/1602/fid/143

og den hjalp mig på vej..

jeg laver nu en 200 ms timeout inden jeg foretager kald på myWin

/Søren
Avatar billede roenving Novice
24. november 2003 - 16:15 #2
Hvad med at sætte en variabel i parent-documentet onload på child-dokumentet ?-)
Avatar billede bearhugx Nybegynder
24. november 2003 - 17:09 #3
kan du give et lille eksepel på det (bare rolig - virker det, så er der points i farevandet) - jeg har nemlig erkendt at delayets størrelse ikke kan forudses - og at det derfor vil fejle på en langsom linie/computer...
Avatar billede roenving Novice
24. november 2003 - 17:32 #4
<body onload="opener.variabelnavn='loadet'">

-- og så i parent-vinduet:

var timer = setInterval('checkVar()',20);
variabelnavn = 'IkkeInitieret';
function checkVar(){
if(variabelnavn=='loadet'){
  clearInterval(timer);
  myWin.x()
  }
}
Avatar billede bearhugx Nybegynder
25. november 2003 - 15:35 #5
roenving >> det virker perfekt - hurtigt - og sikkert :-)

der oprettes et point-overførsels spm :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester