Avatar billede thulstrup Nybegynder
05. juli 2003 - 18:58 Der er 17 kommentarer og
1 løsning

focus blur

jeg prøver at teste om min side er i focus eller ej. Min side ser sådan her ud:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<script language="JavaScript" type="text/javascript">
var forladt = false;
function blur(){
    forladt = true;
    alert("blur");
}   
function focus(){
    if (forladt == true) {
        alert("focus");
    }
    forladt = false;
}
window.onBlur = blur(); 
window.onFocus = focus();
</script>

</head>

<frameset rows="*,0" border="0" frameborder="0" framespacing="0">
    <noframes>
        <body bgcolor="#f5f5f5">
            <p>Din browser underst&oslash;tter ikke frames.</p>
        </body>
    </noframes>
    <frame src="flashpage.php" name="main" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" />
    <frame src="his_nyheder.php" name="bottom" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" />
</frameset>
</html>


Når siden loader får jeg en blur alertbox og så en focus alertbox og så sker der ikke mere lige meget hvor meget focus eller ikke focus siden har. Hvordan skal den lige drejes?
Avatar billede killer_r Nybegynder
05. juli 2003 - 19:30 #1
Måske kan det give problemer at kalde dine funktioner blur() og focus(), da der allerede er funktioner med disse navne... Prøv at omdøbe dine funktioner...
Avatar billede thulstrup Nybegynder
05. juli 2003 - 19:40 #2
Det gør desværre ingen forskel
Avatar billede roenving Novice
05. juli 2003 - 20:50 #3
Det ikke kan, det _vil_ give problemer at bruge reserverede ord !-)

-- i javascript som i alle andre sprog, men da der ikke er nogen compiler ('oversætter') er der ikke nogen til opdage problemet, før siden kører ...

Det er ruskravende skørt at prøve at tage en eksisterende funktions navn og prøve at overtage den, for hvad skal javascript gøre hvis du forsøger at kalde den ?-)

Tage din eller tage sin egen -- et godt gæt vil være, at den bare vil blive forvirret ...

Et hurtigt gæt på hvorfor du ikke får nogen reaktion bagefter er, at de nye vinduer (dine frames) har kontrollen, så frameset-dokumentet er aldrig mere i fokus !-)
Avatar billede thulstrup Nybegynder
05. juli 2003 - 21:51 #4
Det har ikke noget med frames at gøre, det virker helle ikke med en alm. html side.
Avatar billede roenving Novice
05. juli 2003 - 22:44 #5
Jeg kom lige i tanke om noget, som jeg læste (i går ?-) om focus, for vinduet har ikke normalt fokus, det har de elementer, som er i vinduet, så måske har det noget med det at gøre ?o]

Det kan du teste, hvis du klikker på et areal, som alene viser baggrund !-)
Avatar billede thulstrup Nybegynder
05. juli 2003 - 22:51 #6
Selv om jeg ligger onFocus="java script:alert('hej');" i begge <body> tags, samt i <frameset> tagget, så sker der ikke noget...
Avatar billede thulstrup Nybegynder
05. juli 2003 - 22:53 #7
Ok, det kan måske godt være problemet, flashpage.php indeholder nemlig en flash fil der er sat til 100x100% og altså fylder hele skærmen.
Avatar billede thulstrup Nybegynder
05. juli 2003 - 22:58 #8
Jeg sætter jo faktisk også focus på flashen sådan her:
main.flashIdNavn.focus();

, men brude jeg så ikke kunne gøre sådan her?:
<script language="JavaScript" type="text/javascript">
main.flashIdNavn.onFocus = function(){
  alert("focus");
}
</script>

Det virker bare ikke...
Avatar billede roenving Novice
05. juli 2003 - 23:17 #9
Først: Det er noget snask at fortælle browseren at den skal bruge java script: til en javascript-event ????????????????????????????

Til den sidste kan jeg ikke gennemskue hvordan browseren associerer funktions-tildelingen til din flash ...
main, hvem er det, er det ham ovre på hjørnet tilhøjre eller er det ham nede i næste gade på hjørnet tilhøjre ...

Hvornår og hvor laver du de funktioner, for faktisk et af de få steder hvor man for alvor anbefaler at bruge window eller self-propertyen er netop ved adressering af _andre_ window-type-elementer -- her repræsenteret af main-frame'n ...
Avatar billede thulstrup Nybegynder
05. juli 2003 - 23:32 #10
Ok, det var jeg ikke klar over.

main er navnet på den frame der indeholder flash filen.

Jeg forstår ikke ret meget af den sidste del af din kommentar. Hvad er window eller self-propertypen?
Avatar billede roenving Novice
05. juli 2003 - 23:39 #11
Hvor sætter du focus på flashen henne ?-)
Avatar billede thulstrup Nybegynder
05. juli 2003 - 23:57 #12
Det gør jeg fra his_nyheder.php:
parent.main.flashIdNavn.focus();
Avatar billede roenving Novice
06. juli 2003 - 00:13 #13
Og du har indsat din flash i et object-tag ?-)
Avatar billede thulstrup Nybegynder
06. juli 2003 - 00:17 #14
Ja
Avatar billede roenving Novice
06. juli 2003 - 01:00 #15
Ved du at du har fokus på flashen ?

Hvis, så prøv denneher (har ik' li'e haft nogen flash-filer igennem, så jeg er ikke bevandret ;-) i object-tagget:

onblur="alert('hjælp han vil væk');this.focus();"
Avatar billede thulstrup Nybegynder
06. juli 2003 - 10:57 #16
Ja, jeg er sikker på at flashen har focus. Hvis du prøver at kigge på www.turbinehallen.dk/index.php?side=email vil du se, at du kan indtaste din email med det samme uden først at skulle sætte flashen i focus.

At sætte onBlur kommandoen i object (og embed) tagget virker desværre heller ikke.
Avatar billede thulstrup Nybegynder
13. august 2003 - 11:48 #17
Lukker spørgsmålet. Du skal ha' tak for forsøget roenving, men jeg begynder at tro at det ikke kan lade sig gøre.
Avatar billede roenving Novice
13. august 2003 - 13:01 #18
;-[
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