Pergunta

Estou implementando um carrinho de compras para o meu site, usando um efeito pseudo-AJAX Lightbox-esque. (Na verdade, não chamar o servidor entre os pedidos -. Tudo é apenas a magia Prototype para atualizar os valores exibidos)

Há também um comportamento fallback semi-graciosa para usuários sem Javascript: se eles clique em Adicionar ao carrinho eles são levados para um (offsite, menos desejável-interação) carrinho.

No entanto, um usuário com Javascript habilitado que carrega a página e, em seguida, imediatamente sucessos adicionar ao carrinho fica levado para fora da página, também. Eu gostaria de ter o Javascript apenas atrasá-los por um tempo, em seguida, executar o comportamento show de carrinho, uma vez que está pronto. Em alternativa, apenas ignorando totalmente cliques antes do Javascript está pronto é provavelmente viável também.

Todas as sugestões?

Foi útil?

Solução

Agora eu fazer isso com jQuery b / c Lembro-me vagamente diferenças navegador que jQuery cuida de:

Tente

$ (document) .ready (function () { // colocar toda a bondade sua jQuery aqui. });

Outras dicas

é o código que realmente lento que este é um problema? Eu estaria disposto a apostar que ninguém vai estar comprando o seu produto que logo após o carregamento da página. Em qualquer caso razoável, o usuário irá esperar a página carregar antes de interagir com ele, especialmente para algo como uma compra.

Mas, para responder à sua pergunta original, você pode desativar os links no código normal, em seguida, reativar-los usando uma chamada document.observe("dom:loaded", function() { ... }).

Você pode tentar, escondendo as ligações em css, em seguida, mostrar-lhes quando a página é carregada.

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

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

</script>

Desta forma, se o usuário não tem javascript, então suas ligações ainda estão ativos, caso contrário, se o fizerem, então as ligações estão escondidos até que você carregar e ativá-los. Nunca fiz isso antes, mas eu acho que isso deve funcionar se você quiser manter as características de sua página à prova de falhas.

No entanto, um usuário com Javascript habilitado que carrega a página e, em seguida, imediatamente sucessos adicionar ao carrinho fica levado para fora da página, também.

Quando você está começando-se seus scripts? Se você estiver usando onload documento, ele estará esperando por todas as imagens para download antes de inicializar, o que seria, de fato dar ao usuário a chance de click-to-buy.

Se você acionar o reforço JS quando o DOM está pronto, seja por apenas colocando seu

scroll top