JavaScript: come impostare concentrarsi in caricamento della pagina

1 aprile 2009

Hai presente modulo bel po login nella vostra home page ... login-form

... E volete che la gente login direttamente non appena arrivare al sito.

Per facilitare questo, è stato impostato un codice JavaScript piccola per mettere a fuoco automaticamente alla casella di testo nome utente:

  funzione onPageLoad () 
  ( 
  document.form.username.focus (); 
  ) 

Bisogna fare attenzione qui però.

Di solito i programmatori luogo il loro codice JavaScript nel codice HTML modo che il codice viene eseguito solo dopo che tutti gli elementi della pagina viene caricata.

Ora l'utente accede al sito, i carichi form di login, ma alcuni altri elementi della pagina sono ancora carico.

L'utente inizia a digitare il nome utente, si sposta poi a riempire la password:

login-form-username

La pagina completa il caricamento ora, e esegue il codice JavaScript e imposta la messa a fuoco username casella di testo. L'utente non lo sa, è ancora digitando la password.

login-form-pasword

Oops!

Il glitch usabilità stesso può verificarsi in molte situazioni analoghe che implicano l'azione dell'utente.

In questa situazione specifica, è possibile modificare il codice per qualcosa come:

  funzione onPageLoad () 
  ( 
  if (document.form.username.value.length == 0) 
  ( 
  document.form.username.focus (); 
  ) 
  ) 

È anche possibile provare l'esecuzione dello script non appena la forma completa visualizzazione, ma per quanto ne so non ci sono modi affidabili per fare queste, perché i vari browser realizzare cose in modo diverso. Anche nello stesso browser funzionano le cose in modo incoerente in diversi scenari.

10 risposte finora

  • Binny VA ha detto:

    Nizza. Un altro metodo è quello di fare questo ...

    document.getElementById ("username"). focus ();

    Brutto, ma valida.

  • Binny VA ha detto:

    In realtà, ci fu un tag input prima di tale script. E un Tage script allegato il codice JS - ma WP mangiato.

  • Niyaz PK ha detto:

    Questo era quello che stavo parlando. Questa sarebbe stata una buona soluzione se ha funzionato in modo affidabile. Purtroppo, non sempre.

    Browser diversi eseguire il codice JavaScript incorporato in diverse fasi di carico dei documenti.

  • [...] Tratto da: JavaScript: come impostare concentrarsi di caricamento della pagina | Diovo [...]

  • Joyce ha detto:

    O utilizzare jquery

    $ (Documento). Ready (function () (
    $ ('# Nome utente'). Focus ();
    ));

    La funzione di pronto viene attivato dopo che il DOM è stato caricato completamente.

  • Niyaz PK ha detto:

    Joyce,

    Yeah. JQuery ha fatto ordinatamente in modo che non devi preoccuparti per il browser di implemetations onLoad.

    Ancora una volta, anche se si sta utilizzando jQuery, è necessario utilizzare il se () condizione di fare la messa a fuoco () codice di lavoro migliore. Questo era il punto di questo articolo.

  • Silky ha detto:

    Buona idea. Questo mi ha sempre infastidito.

  • Panthayi ha detto:

    Grazie per le info dude.I pensare does't Anche Google lo sa.

  • Niyaz PK ha detto:

    Silky, Panthayi,

    Sono contento che sia aiutato.

  • Ron ha detto:

    Quando abbiamo aperto la pagina di facebook, si noti come il testo nel campo e-mail è evidenziata. Mentre l'utente digita nel suo indirizzo di posta elettronica che sovrascrive il testo. Tutte le idee su come ciò potrebbe essere fatto?

Lasci una risposta