På siden nyheder.php har jeg et script der kalder funktionen setPage() på siden flashpage.php:
<script language="JavaScript" type="text/javascript"> <!-- function frameWait() { if (parent.frames.length!=2){ window.setTimeout('frameWait();',10); } else { parent.main.setPage('nyheder'); } } frameWait(); //--> </script>
Da nyheder.php ofte loader hurtigere end flashpage.php, har jeg brugt setTimeout for at undgå at setPage() bliver kaldt før den er loadet. Men der noget der ikke er rigtigt, for nogle gange får jeg en "Object doesn't support this property or method" på den linie hvor setPage() bliver kaldt. Hvad er der galt?
nikolajdu> scriptet "venter" på at der er loaded to frames så framsettet er klar da <frameset> ikke understøtter onload="", en hack lavet af undertegnede
hey cellblock> ligger der en funktion i "main" der hedder setPage()???
nikolajdu> oh jeg er med function frameWait() { if (parent.frames.length!=2){ timerDu = window.setTimeout('frameWait();',10); } else { clearTimeout("timerDu"); parent.main.setPage('nyheder'); } } Så vi ikke lader scheduleren stå og idle mens den venter på vi sætter Timeout igen. Resource spild, men ikke det direkte problem.
=maddog=> Hej igen, som du nok kan se har jeg prøvet at få dit script fra spm http://www.eksperten.dk/spm/344692 til at fungerer, men det virker stadig ikke helt. Og ja, setPage() ligger i main framen.
function frameWait() { if (parent.frames.length!=2){ timerDu = window.setTimeout('frameWait();',10); } else { if (parent.main) { clearTimeout(timerDu); alert("Vi HAR loaded main. Der er ugler i mosen"); parent.main.setPage('nyheder'); } else { alert("Hack'et duer af en eller anden grund ikke.\nMå vi kigge på."); } } }
som nikolajdu siger -> jeg har ikke sat frameWait(); nederst denne gang. Du har vist glemt, at det ikke skulle slettes - kun funktionen (bemærk venligst min finte for at skyde skylden fra mig)
function frameWait() { if (parent.frames.length!=2){ timerDu = window.setTimeout('frameWait();',10); } else { if (parent.main) { alert("Vi HAR loaded main. Der er ugler i mosen"); clearTimeout(timerDu); parent.main.setPage('nyheder'); } else { alert("Hack'et duer af en eller anden grund ikke.\nMå vi kigge på."); } } }
Og så skal "parent.main.setPage('nyheder');" også lige flyttes op før clearTimeout, for at det virker. Men stadig ca. 1 ud af 10 gange får jeg en fejlmeddelse?
Lige for at opsumere ser scriptet nu sådan her ud:
<script language="JavaScript" type="text/javascript"> <!-- function frameWait() { var timerDu = null; if (parent.frames.length!=2){ timerDu = window.setTimeout('frameWait();',10); } else { if (parent.main) { alert("Vi HAR loaded main. Der er ugler i mosen"); parent.main.setPage('nyheder'); clearTimeout(timerDu); } else { alert("Hack'et duer af en eller anden grund ikke.\nMå vi kigge på."); } } } frameWait(); //--> </script>
Jeg har opdaget at så længe alertboxen (Vi HAR loaded main. Der er ugler i mosen) kommer frem virker det, men hvis jeg fjerner den virker det igen ikke hver gang. Det er som om alertboxen lige giver den ekstra tid der skal til før det hele er loadet. Det er jo desværre bare ikke så fedt med en alertbox når man starter en side...
nikolajdu> Det må finde ud af, men jeg ikke set dig på icq'en i en rum tid.
Synes godt om
Ny brugerNybegynder
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.