14. april 2003 - 15:16Der er
10 kommentarer og 1 løsning
try catch
Hej Eksperter Den her skal tjekke om et vinue findes eller ej og derudfra vælge hvilken funktion der skal kaldes. Det virker bare ikke. Det er altid den samme funktion den kalder.
function frameormenu() { try { var side = top.toppen.appletwin; hv = showapp(); return false; } catch(ex) { hv = showapp2() return false; } }
Okay, her er lidt mere. Meningen med skidtet er at den unload skal finde ud af om vinduet appletwin findes eller ej. Vinduet bliver dannet i en anden frame. Men jeg kan ikke finde ud af at teste om vinduet findes eller ej og er heller ikke sikker på syntax'en.
<script>
function frameormenu() { try { var side = top.toppen.appletwin; hv = showapp(); return false; } catch(ex) { hv = showapp2() return false; } }
function showapp() { for (var o=1;o<document.getElementById('counter').value;o++) { document.getElementById('appletpic'+o).style.visibility='visible'; } }
function showapp2() { for (var o=1;o<document.getElementById('counter').value;o++) { document.getElementById('appletpicmenu'+o).style.visibility='visible'; } }
Ja, det er under samme site. top.toppen.appletwin; er en funktion i en anden frame der laver mit nye vindue. Dette foregår i en anden frame for at jeg kan tilgå vinduet også selv om jeg skifter side og derved ville miste forbindelsen til vinduet.
Det er ikke så meget den del der driller. Jeg kan sagtens teste på om vinduet eksisterer. Det er den videre behandling i min try catch. Hvis vinduet faktisk er der skal den gå ned i den ene funktion og gøre et link synligt. Hvis ikke vinduet findes skal den gøre den anden del synlig.
Jeg ville meget gerne give dig en url, men det kræver login og password, og helt alene er vi vel ikke ;-) håber det her er forklaring nok.
var win = {"closed":true}; function myOpen() { win = window.open("side.html","navn"," ... blablabla ... "); }
Så kan du altid spørge på if(win.closed).
Vi starter med at oprette en global variabel 'win', der sættes til et objekt med property'en 'closed' sat til true. Jeg kunne også have skrevet: var win = new Object(); win.closed = true; Men det andet er lidt mere sexy :)
Grunden til dette objekt skal oprettes (for senere at blive skiftet ud med window-objektet) er, at du ellers genererer en fejl, hvis du spørger til 'win.closed' - hvis ikke popUp'en har været åbnet. /mvh
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.