Domanda

Io sono l'attuazione di un carrello per il mio sito web, utilizzando un effetto pseudo-AJAX ID-esque. (In realtà non chiamare il server tra le richieste -. Tutto è solo Prototype magia per aggiornare i valori visualizzati)

C'è anche un comportamento fallback semi-grazioso per gli utenti senza Javascript: se si fa clic su Aggiungi al carrello ottengono trasportati in un (fuori sede, meno desiderabili-interazione) della spesa.

Tuttavia, un utente con Javascript abilitato, che carica la pagina e poi colpisce subito aggiungi al carrello viene portata via dalla pagina, anche. Mi piacerebbe avere il JavaScript semplicemente ritardare per un po ', quindi eseguire il comportamento visualizza carrello una volta che è pronto. In subordine, appena completamente ignorando clic prima che il Javascript è pronto è probabilmente valida anche.

Qualche suggerimento?

È stato utile?

Soluzione

Io ora faccio con jQuery b / c Ricordo vagamente differenze tra i browser che jQuery si occupa di:

Prova

$ (document) .ready (function () {     // mettere tutta la vostra bontà jQuery qui. });

Altri suggerimenti

Se il vostro codice davvero così lento che questo è un problema? Sarei pronto a scommettere che nessuno sta per essere acquistare il prodotto che subito dopo il caricamento della pagina. Ad ogni modo ragionevole, l'utente dovrà attendere che la pagina da caricare prima di interagire con esso, soprattutto per qualcosa di simile a un acquisto.

Ma per rispondere alla tua domanda iniziale, è possibile disattivare i collegamenti in normale codice, poi riattivare utilizzando una chiamata document.observe("dom:loaded", function() { ... }).

Si può provare, nascondendo i collegamenti in css poi mostrarli al caricamento della pagina.

<script type="text/javascript">
  document.write('<link rel="stylesheet" type="text/css" href="someCssThatHidesLinks.css" />');

  window.onLoad = function() {
    //show links
  }

</script>

In questo modo, se l'utente non ha i javascript, poi i loro legami sono ancora attivi, altrimenti se lo fanno, quindi i collegamenti sono nascosti fino a quando si carica e attivarli. Mai fatto prima, ma credo che questo dovrebbe funzionare se si desidera mantenere le caratteristiche della vostra pagina di fail-safe.

  

Tuttavia, un utente con Javascript abilitato, che carica la pagina e poi colpisce subito aggiungi al carrello viene portata via dalla pagina, anche.

Quando si avvio del script? Se stai usando onload documento, sarà in attesa di tutte le immagini da scaricare prima di inizializzazione, che sarebbe davvero dare all'utente la possibilità di click-to-buy.

Se si attiva la valorizzazione JS quando il DOM è pronto, sia da solo mettendo il vostro

scroll top