Avatar billede cesil Nybegynder
14. april 2003 - 15:16 Der 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;
    }
}
Avatar billede olebole Juniormester
14. april 2003 - 15:20 #1
<ole>

Hvad er det for et vindue og hvor kommer det fra? Hvornår og hvorfor tester du? Kode?

/mvh
</bole>
Avatar billede cesil Nybegynder
14. april 2003 - 15:38 #2
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';
}
}

// -->
</script>


<body onLoad="frameormenu();" >
<table>
    <tr> 
        <td bgcolor="#FFFFFF" width="10"><a href="#" onclick="top.toppen.winopen(22,663,'FoodCon/files/663');"><div id="appletpic3" style="visibility: hidden"><img alt="Viewer" border="0" src="../images/viewer.gif"></div></a></td>
        <td bgcolor="#FFFFFF" width="10"><a href="#" onclick="top.toppen.appletwin.frames.Directory.location.href('projectfiles.asp?id=22&pid=663&filepath=FoodCon/files/663');"><div id="appletpicmenu3" style="visibility: hidden"><img alt="Viewer" border="0" src="../images/viewer.gif"></div></a></td>
    </tr>   
</table>
Avatar billede olebole Juniormester
14. april 2003 - 15:41 #3
Hvis det er over frames, må du lægge en URL og en forklaring. Ellers bliver det noget af en gætte-konkurrance  :)
PS: Ligger det hele under samme site?
Avatar billede cesil Nybegynder
14. april 2003 - 15:53 #4
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.
Avatar billede olebole Juniormester
14. april 2003 - 15:54 #5
Nej, så hopper jeg ud af spm'et  :)
/mvh
Avatar billede cesil Nybegynder
15. april 2003 - 11:32 #6
her er løsningen hvis nogen har interesse for det:

Jeg lavede en dommy funktion i mit window.
Checkede på om den kunne kaldes.

function frameormenu() {
    var tmp = top.toppen.isPressent();
    if (tmp)
        var hv = showapp2();
    else
        var hv = showapp();
}
Avatar billede olebole Juniormester
15. april 2003 - 16:25 #7
Du kan også spørge på property'en 'closed' på popUp'en ... men det kræver, man kan se din kodestruktur (frames eller ej) samt din opener-funktion  :)
Avatar billede cesil Nybegynder
16. april 2003 - 08:26 #8
Okay. Det var sådan et svar jeg havde håbet på. ;-)
Det er lidt en omvej og lave dommy funktion når jeg bare kan teste med closed.
Avatar billede olebole Juniormester
16. april 2003 - 13:26 #9
Du skal i så fald gøre noget à la:

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
Avatar billede cesil Nybegynder
16. april 2003 - 14:42 #10
OK, jeg leger med det lidt senere.
Tak for hjælpen.
Avatar billede olebole Juniormester
16. april 2003 - 15:04 #11
... anytime  :)
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