Avatar billede webcreator Nybegynder
04. januar 2005 - 20:37 Der er 12 kommentarer og
1 løsning

Placering af cursor giver fejl når der ingen i input-felter er

Hej eksperter.

Pt. sætter jeg altid min cursor i det første input-felt på min side vha. <body onload="document.forms[0].elements[0].focus();">

Ovenstående virker ganske glimrende, men IE giver fejl når der ingen input-felter er. Hvordan undgår jeg det problem?
Avatar billede webcreator Nybegynder
04. januar 2005 - 21:28 #1
?
Avatar billede webcreator Nybegynder
04. januar 2005 - 22:30 #2
Ingen forslag ?
Avatar billede thomas_yde Nybegynder
05. januar 2005 - 09:10 #3
du kan indkapsle det hele ved:

<script language="Javascript">
window.onload = initPage;

function initPage(){
  try{
    document.forms[0].elements[0].focus();
  }
  catch(e){
  }
}
</script>
Avatar billede thomas_yde Nybegynder
05. januar 2005 - 09:12 #4
du kan selvfølgelig også:
<script language="Javascript">
window.onload = initPage;

function initPage(){
  try{
    var objInp = document.forms[0].elements[0];
    if(objInp != null){
      objInp.focus();
    }
  }
  catch(e){
  }
}
</script>
Avatar billede webcreator Nybegynder
05. januar 2005 - 16:31 #5
Hvad er forskellen på de to løsninger?
Avatar billede roenving Novice
05. januar 2005 - 19:33 #6
<body onload="if(document.forms[0].elements[0])document.forms[0].elements[0].focus();">
Avatar billede roenving Novice
05. januar 2005 - 19:36 #7
-- eller måske endda (men den type kodning har jeg ikke prøvet selv !-)

<body onload="try{document.forms[0].elements[0].focus()}"> -- evt. catch{} bagest !o]
Avatar billede thomas_yde Nybegynder
06. januar 2005 - 09:32 #8
roenving er du sikker på du kan lave en try uden en catch?

anyways.
den jeg skrev 05/01-2005 09:12:09 henter objektet ned i en variable, og tester om den er null. Den skulle kun gøre det hvis dit object er sat, hvis der sker en fejl ved at hente objektet bliver den fanget af catch(e) hvor e er error object.
Avatar billede olebole Juniormester
06. januar 2005 - 13:29 #9
<ole>

Problemet er blot, at det vel ikke giver så megen mening at få en radio-button, checkbox eller knap i fokus. Derfor er denne måske lidt bedre:

function initPage() {
    var elms = document.forms[0].elements;
    for (i=0j,j=elms.length; i<j; i++) {
        if ( (elms[i].tagName=="INPUT" && (elms[i].type=="TEXT" || elms[i].type=="PASSWORD")) || elms[i].tagName="TEXTAREA" ) {
            elms[i].focus();
        }
    }
}

window.onload = initPage;

/mvh
</bole>
Avatar billede olebole Juniormester
06. januar 2005 - 13:31 #10
Ooops ... glemte et '=' i slutningen af betingelsen:
  if ( ...... || elms[i].tagName=="TEXTAREA" ) {
    ... osv
Avatar billede thomas_yde Nybegynder
06. januar 2005 - 13:37 #11
Det har du så endelig ret i ole.
Avatar billede webcreator Nybegynder
16. januar 2005 - 03:07 #12
Tak for hjælpen. Jeg brugte Thomas' svar. Kan jeg få et svar, tak :)
Avatar billede webcreator Nybegynder
19. januar 2005 - 23:28 #13
.
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