Avatar billede ultik Nybegynder
27. november 2000 - 12:02 Der er 17 kommentarer og
1 løsning

Javascript i frameset

Hej !

Jeg har et vindue der åbner med en privat-chat, og så vil jeg lave en cleanup når vinduet lukkes, men den fil der bliver åbnet i vinduet indeholder et frameset tag, og dermed ingen body, hvordan sætter jeg så en event til onClose ?

Med venlig hilsen
Ulrik Jensen
ulrik@qcom.dk
Avatar billede renewester Nybegynder
27. november 2000 - 13:53 #1
Du laver bare en body tag i framesettet. Så kører det.
Avatar billede ultik Nybegynder
28. november 2000 - 17:25 #2
ok, skal lige tjekke så er pointsene dine  !
Avatar billede ultik Nybegynder
28. november 2000 - 17:33 #3
nope, det virker ikke !

for at det skal virke skal body-taget sidde over frameset tagget, og så virker framesettet ikke
Avatar billede jakoba Nybegynder
28. november 2000 - 20:00 #4
Der må netop ikke være nogen body i en frameset fil. det er det der er problemet.

Men den frame-side der bærer chatten må have en body. Kan du ikke lægge din cleanup der som en onUnload?
Avatar billede ultik Nybegynder
28. november 2000 - 21:31 #5
problemet er, så bliver den kaldt hver gang siden refresher, ca. hver 3. sek :-(
Avatar billede ultik Nybegynder
28. november 2000 - 21:37 #6
jeg har prøvet at indsætte onClose=\"\" i frameset tag\'et, men dette virkede heller ikke :-(
Avatar billede jakoba Nybegynder
28. november 2000 - 21:42 #7
When all else fails, read the manual. :)
Man kan lægge en onUnload event ind i sin Frameset tag.

onUnload

Executes JavaScript code when an unload event occurs; that is, when the user exits a document.

Event handler for    Window
Implemented in      Navigator 2.0

Syntax                  onUnload=\"handlerText\"

Parameters           
  handlerText        JavaScript code or a call to a JavaScript function.

Description
  Use onUnload within either the BODY or the FRAMESET tag, for example, <BODY onUnload=\"...\">.

In a frameset and frame relationship, an onUnload event within a frame (placed in the BODY tag) occurs before an onUnload event within the frameset (placed in the FRAMESET tag).

mvh JakobA
Avatar billede jakoba Nybegynder
28. november 2000 - 21:47 #8
Jeg kan ikke finde noget der hedder  \"onClose\". Kan det være en Explorer-only extension?
Avatar billede ultik Nybegynder
28. november 2000 - 21:50 #9
var ikke helt sikker med den onClose, så jeg har brugt en onUnload samtidig med onClose i alle mine forsøg, jeg prøver lige igen, for hvis det står i manualen, it has to be true right :-)
Avatar billede ultik Nybegynder
28. november 2000 - 21:55 #10
det vil ikke virke, min kode er den følgende :

<html>
<head>
    <title>Privatchat <%=rqSession%></title>
   
<script language=\"JavaScript\">
<!--
    function winClose() {
        window.open(\'endprivchat.asp?chatsession=<%=rqSession%>\',\'end<%=rqSession%>\',\'height=0, width=00\');
        alert(\'Du har forladt den private chat\');
    }
-->
</script>
</head>
<!-- frames -->
<frameset onUnLoad=\"winClose();\" rows=\"*,80\" framespacing=0>
    <frame name=\"privmain<%=rqSession%>\" src=\"privatchat.asp?chatsession=<%=rqSession%>\" marginwidth=\"10\" marginheight=\"10\" scrolling=\"no\" frameborder=\"0\" noresize>
    <frame name=\"privinput<%=rqSession%>\" src=\"privinput.asp?chatsession=<%=rqSession%>\" marginwidth=\"10\" marginheight=\"10\" scrolling=\"auto\" frameborder=\"0\" noresize>
</frameset>
</html>
Avatar billede ultik Nybegynder
28. november 2000 - 22:00 #11
alert\'en er bare for at teste om funktionen faktisk udføres, da det vindue der åbnes lukkes lynhurtigt igen
Avatar billede jakoba Nybegynder
28. november 2000 - 22:11 #12
Det ser yderst rigtigt ud. Det eneste jeg har lidt mistillid til er de %-tegn i query parameteren hvor % plejer at betyde at nu kommer der et \"kodet\" tegn.

prøv evt

window.open(\'endprivchat.asp?chatsession=\'+escape(\'<%=rqSession%>\')
                  ,\'end<%=rqSession%>\'
                  ,\'height=0, width=00\');

med tilsvarende unescape() før parameterværdien bruges.

eller er .asp substitutionen allerede foretaget når brovseren får siden (inden i en streng inden i et script).
Avatar billede ultik Nybegynder
28. november 2000 - 22:25 #13
asp substitutionen foregår på serveren, før klienten får siden, klienten ser siden sådan :

<html>
<head>
    <title>Privatchat level1-kim</title>
   
<script language=\"JavaScript\">
<!--
    function winClose() {
        window.open(\'endprivchat.asp?chatsession=level1-kim\',\'endlevel1-kim\',\'height=0, width=00\');
        alert(\'Du har forladt den private chat\');
    }
-->
</script>
</head>

<frameset onUnLoad=\"winClose();\" rows=\"*,80\" framespacing=0>
    <frame name=\"privmainlevel1-kim\" src=\"privatchat.asp?chatsession=level1-kim\" marginwidth=\"10\" marginheight=\"10\" scrolling=\"no\" frameborder=\"0\" noresize>
    <frame name=\"privinputlevel1-kim\" src=\"privinput.asp?chatsession=level1-kim\" marginwidth=\"10\" marginheight=\"10\" scrolling=\"auto\" frameborder=\"0\" noresize>
</frameset>
<!-- frames -->
</html>
Avatar billede jakoba Nybegynder
28. november 2000 - 22:38 #14
2 mere gætterier og så er jeg tom:

flyt  alert(...)  op foran  window.open(...)  jeg synes stadig den er lidt suspekt

onUnload  staves med lille l i load  (netscape kan være lidt kritisk der).

men det er rent gætteri.
Avatar billede ultik Nybegynder
28. november 2000 - 22:53 #15
hmm

det er noget med min window.open der er galt, for hvis jeg kommenterer den ud, kommer alert\'en, hvis du lige svarer så får du pointsene for dit besvær. Ellers tak for hjælpen
Avatar billede ultik Nybegynder
28. november 2000 - 23:06 #16
ahhh

fandt fejlen, der må ikke være \"-\" i vinduets handle, og det var der.......
Avatar billede jakoba Nybegynder
28. november 2000 - 23:27 #17
Ja den har jeg også lige fundet. Det sære er at netscape åd den, mens explorer absolut ikke ville. Sært. hej.
Avatar billede jakoba Nybegynder
28. november 2000 - 23:28 #18
Ok
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