25. september 2001 - 14:22
Der er
14 kommentarer og 1 løsning
Detect window-forladt og window-aktivt..
Jeg har nu fosøgt at skrive et lille script, der skal aktiveres når en bruger har \"forladt\" et Browservindue (fx ved åbning af popup-vindue) og efterfølgende vender tilbag til det.. En simpel ting vil jeg tro - bare ikke for mig!? Jeg har både forsøgt med onBlur og UnFocus og onLoad og onUnload - og både i Body-tag\'en (hvor OnFokus ikke fungerer før man klikker indeni vinduet - at aktivere vinduet er ikke nok) og som et script i HEAD\'en (som altid bliver OnBlur - også selvom man stadig er i det pågældende vindue..) Dette er hvor jeg er nu (men som ikke virker): <head> <SCRIPT LANGUAGE = \"JavaScript\"> var sidenForladt = false; document.OnBlur = sidenForladt=true;\" document.onFocus = aktivFunktionen(); function aktivFunktionen() { if ( sidenForladt == true ) { document.write(\'Velkommen tilbage på siden!\'); } } </SCRIPT> </HEAD>
Annonceindlæg fra Computerworld
25. september 2001 - 14:23
#1
(Ignorer blot gåseøjnene (\") efter true; - de er blevet slettet.)
25. september 2001 - 14:26
#2
<ole> Hov...Pas lige på! Du kan ikke skrive en alm. function, men en metode på dine handlers: document.onfocus = aktivFunctionen; ...altså uden \'()\'. /mvh </bole>
25. september 2001 - 14:30
#3
...eventuelt: function doIt() { sidenForladt=true; } document.onblur= new Function(doIt); ...og husk så lige, at JavaScript er case-sensitivt....ikke stort \'O\' i \'onblur\' :)
25. september 2001 - 14:41
#4
Det kunne så se således ud samlet set: <head> <SCRIPT LANGUAGE = \"JavaScript\"> var sidenForladt = false; document.onBlur = new Function(farveller); document.onFocus = new Function(aktivFunktionen); function farveller() { sidenForladt=true; document.write(\'Siden blev forladt - byebye<br>\'); } function aktivFunktionen() { if ( sidenForladt == true ) { document.write(\'Siden aktiv!<br>\'); } } </SCRIPT> </HEAD> <body> Dette er en test!<br> </body> </html> - men der er ingen forskel p.t. - det virker ikke!
25. september 2001 - 14:41
#5
(heller ikke MED <html> øverst...)
25. september 2001 - 14:44
#6
(og ej heller med lille bogstaver ==> onblur & onfocus)
25. september 2001 - 15:01
#7
Jeg hæver med en smule point da det åbenbart ikke er HELT simpelt..
25. september 2001 - 15:03
#8
Når jeg siger det ikke virker mener jeg, at document.write sætningerne ikke skrives ud..
25. september 2001 - 15:22
#9
det er også lidt meget at gøre ud af det. prøv med: <head> <SCRIPT LANGUAGE = \"JavaScript\"> var sidenForladt = false; function farveller() { sidenForladt=true; document.write(\'Siden blev forladt - byebye<br>\'); } function aktivFunktionen() { if ( sidenForladt == true ) { document.write(\'Siden aktiv!<br>\'); } sidenForladt = false; } document.onBlur = farveller; // skal stå efter farveller er defineret. document.onFocus = aktivFunktionen; </SCRIPT> </HEAD> <body> Dette er en test!<br> </body> </html> mvh JakobA
25. september 2001 - 15:26
#10
men hov. onBlur og onFocus er da handlere for winduet. ikke dokumentet: window.onBlur = farveller; // skal stå efter farveller er defineret. window.onFocus = aktivFunktionen;
25. september 2001 - 15:33
#11
Selvom det samlet så ser således ud fungerer det stadig ikke - intet bliver skrevet hverken når browservinduet forlades eller igen markeres...? <html> <head> <SCRIPT LANGUAGE = \"JavaScript\"> var sidenForladt = false; function farveller() { sidenForladt=true; document.write(\'Siden blev forladt - byebye<br>\'); } function aktivFunktionen() { if ( sidenForladt == true ) { document.write(\'Siden aktiv!<br>\'); } sidenForladt = false; } window.onBlur = farveller; // skal stå efter farveller er defineret. window.onFocus = aktivFunktionen; </SCRIPT> </HEAD> <body> Dette er en test!<br> </body> </html>
25. september 2001 - 16:02
#12
Hvad med at skrive en document.close() efter dine document.write hth jes
25. september 2001 - 16:09
#13
Tilføjelse af document.close(); ændrer desværre ikke på noget - de bliver stadig ikke skrevet ud = det virker stadig ikke!
25. september 2001 - 16:22
#14
jeg får forladt meldingen. Og det er jo også alt hvad der kan fås. da document.write overskriver den eksisterende side. testede lige, det viser sig at onfocus og onblur skal staves med lille: <html> <head> <!-- Minus AutoDato --> <META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\"> <SCRIPT LANGUAGE = \"JavaScript\"> var sidenForladt = false; function farveller() { sidenForladt=true; document.fr.tx.value += \"Siden blev forladt - byebye\\n\"; } function aktivFunktionen() { if ( sidenForladt == true ) { document.fr.tx.value += \"Siden aktiv!\\n\"; } sidenForladt = false; } window.onblur = farveller; // skal stå efter farveller er defineret. window.onfocus = aktivFunktionen; </SCRIPT> </HEAD> <body> Dette er en test!<br> <form name=\'fr\'> <textarea name=\'tx\' rows=6 cols=60 wrap=\'logical\'> </textarea> </form> </body> </html> mvh JakobA
25. september 2001 - 17:22
#15
NU virker det - mange tak for det! :-)
Vi tilbyder markedets bedste kurser inden for webudvikling