Avatar billede razmuz_dk Nybegynder
11. oktober 2005 - 14:27 Der er 11 kommentarer og
1 løsning

focus problemer

Hejsa,

Når jeg bruger FORMNAME.INPUTNAME.focus(); skriver min Firefox, at jeg ikke overholder de nuværende w3c-standarder. Jeg skal bruge getElementById() i stedet.

Det gør jeg så ved at skrive
<input id="name" name="name">
og
document.getElementBy('name').focus();

Det virker også fint i Firefox - men i Internet Explorer får hele "vinduet" fokus, i stedet for kun tekstfeltet. Med andre ord skifter scriptet simpelthen vindue! Ikke særlig rart for brugeren hvis han browser en anden side.

Hjælp :-)
Avatar billede softspot Forsker
11. oktober 2005 - 14:29 #1
document.getElementBy('name').focus();

skal vel være

document.getElementById('name').focus();
Avatar billede razmuz_dk Nybegynder
11. oktober 2005 - 14:30 #2
Nåeh ja det er også rigtigt - det var bare lige en slåfejl. Jeg har naturligvis skrevet ById i mit script (scriptet fungerer jo, som jeg skriver - bare lidt for godt).
Avatar billede softspot Forsker
11. oktober 2005 - 14:34 #3
Har du prøve at give din kontrol et andet navn end 'name', f.eks. 'nameX'?
Avatar billede razmuz_dk Nybegynder
11. oktober 2005 - 14:51 #4
Ja name var naturligvis også bare et eksempel for at illustrere mit problem.
Avatar billede softspot Forsker
11. oktober 2005 - 14:54 #5
OK. Ofte er det langt lettere at forholde sig til den konkrete kode der fejler, da det ikke nødvendigvis er det man umiddelbart tror der er årsagen til et problem, som rent faktisk er årsagen.

Derfor vil jeg da opfordre til at du prøver at vise den konkrete kode hvori problemet opstår... :)
Avatar billede razmuz_dk Nybegynder
13. oktober 2005 - 08:51 #6
Jeg vurderede, at det i dette tilfælde var lettest at forholde sig til kodeeksempler. Delvist fordi det kun er meget lidt af "kodemassen", der omfatter mit aktuelle problem. Og delvist fordi koden jo rent faktisk "virker" - altså der ingen deciderede fejl. Men okay, lad gå :-)

Her er et stykke af mit js:

chat.php:
<script type="text/javascript">
    function setfocus() {
        document.getElementById('message').focus();
    }
    function say(username, message) {
        if(username == "" ) username = "System";
        document.getElementById('chatcontent').innerHTML = document.getElementById('chatcontent').innerHTML + '<b>'+username+'</b>: '+message+'<br>';
        document.location = 'index.php?page_id=61#anchor';
        setfocus();
    }
    setTimeout("say('', 'Chat startet...');", 200);
    document.getElementById('chat_fetcher').src = 'chat_fetcher.php';
</script>

og message-id og message-name er defineret ved:

<input id="message" name="message" style="width: 100%;" maxlength="255">


Men som sagt - scriptet "virker" - problemet er blot at "focus'en er for stærkt". Hvis man har flere IE-vinduer kørende, skifter den simpelthen vindue til det vindue hvorfra setfocus(); kører fra - det er jo ikke meningen - meningen er naturligvis blot, at tekstfeltet skal have focus UDEN at brugerens får chat.php stukket op i hovedet.

Du må endelig skrive igen hvis du mener, at mit problem skal yderligere uddybes.
Avatar billede roenving Novice
13. oktober 2005 - 15:41 #7
Hrm, det er jo sådan focus() fungerer i de fleste browsere ...
Avatar billede softspot Forsker
13. oktober 2005 - 18:08 #8
Nåååh, ok... det var det der menes :)

Det opfattede jeg ikke, men så kan jeg nok heller ikke gøre noget ved det... :)
Avatar billede razmuz_dk Nybegynder
15. oktober 2005 - 23:59 #9
Nej okay - jeg er også kommet frem til, at løsningen jeg leder efter ikke findes.

Så må det omgås på andre måder. En af jer fyre, der lynhurtigt kan skrive et javascript, der scroller til bunden af en div (med overflow: auto) hver gang der kommer en ny besked? :)
Avatar billede olebole Juniormester
16. oktober 2005 - 00:59 #10
<ole>

Det kunne man godt, men det er ofte irriterende at læse en sådan chat. Skriv i stedet beskeden til foroven - så historikken løber nedad i stedet for opad  :)

/mvh
</bole>
Avatar billede razmuz_dk Nybegynder
17. oktober 2005 - 13:05 #11
Eih jeg kan nu bedre lide den løber nedad! Mest logisk læseretning? :P
Avatar billede razmuz_dk Nybegynder
28. oktober 2005 - 12:20 #12
Jeg lavede noget AJAX - og på den måde forsvandt "focus'en" aldrig fra feltet. Problem is solved!
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