8
votes

Comment faire un compte à rebours de 10 secondes avant qu'un lien de bouton de téléchargement apparaisse?

sur une page de téléchargement, je voudrais le faire de sorte que lorsque la page se charge, une minuterie de 10 secondes commence automatiquement. Sur la page, j'aimerais que certains textes disent quelque chose comme "Vous pouvez commencer votre téléchargement en 10 secondes ..." Ensuite, une fois que le temps est terminé, un bouton de téléchargement apparaît pour que les gens cliquent sur et commencent leur téléchargement.

Comment puis-je faire cela et quel code dois-je utiliser pour l'inclure dans une page?


4 commentaires

@ Marty Wallace: Megaupload Sorte de chose, je suppose.


Je veux surveiller et empêcher le hotlinking. En outre, certains fichiers vont être gros pour que je veux que les gens attendent avant de pouvoir télécharger les fichiers ... Donc, cela n'a pas d'impact sur mon serveur.


Sûrement cette question a été répondue auparavant.


Cela aurait pu être, mais j'ai regardé partout et je n'ai rien trouvé.


7 Réponses :


7
votes

Vous pouvez utiliser seinterval () pour le faire.

Notez que vous assurez que le nœud comporte un noeud de texte existant, qui peut être n'importe quel espacation. Si vous ne pouvez pas vous garantir cela, utilisez simplement innerhtml ou innertext / textContent . xxx

jsfiddle .


2 commentaires

Je ne connais pas trop avec PHP, donc je ne suis pas sûr de ce que vous entendez par l'élément de compte à rebours.


@Omar, le violon peut être plus facile à comprendre. Il n'y a pas de PHP dans ma réponse.



11
votes

Voir: http://jsfiddle.net/ratw7/

Il est compatible à l'envers et pas si sécurisé, mais 10 secondes ne sont pas grandes à craindre de toute façon.


5 commentaires

@Omar Tout le monde peut inspecter la source et obtenir le lien de téléchargement sans attendre 10 secondes.


Êtes-vous vraiment 13 mini-tétech? Bravo sur vos compétences de codage (+1) si jeune, vous irez loin :)


@Omar: Si vous vouliez vraiment que ce soit en sécurité, vous devriez également mettre en œuvre une validation du côté serveur, et c'est juste un effort perdu pour une attente de 10 secondes OMI. De plus, il n'est pas intuitif pour les gens naviguer sans JavaScript. Heureusement, cela prendra en réalité des gens plus de 10 secondes pour modifier et contourner le script, donc cela n'a pas d'importance de toute façon.


D'accord, merci à tout le monde de l'aide .. Appréciez-le. Vous m'avez tous convaincu de ne pas inclure cela sur mon site. Je pensais que ce serait un bon ajouter ... devinez pas lol! : P


Eh bien, le seul problème réel est que sans la validation du côté serveur, quelqu'un pourrait créer quelque chose comme un script greffemonkey qui le contournait pour tous les téléchargements sur votre site. Donc pas vraiment une question sauf si vous avez des tonnes de DLS.



1
votes

J'écris une réponse avec code, mais la réponse d'Alex est meilleure que ma solution rapide et sale.

Prenons en compte que si vous voulez faire quelque chose comme ce que faire rapidshare et d'autres personnes, vous devrez générer le lien du côté serveur et la récupérer avec AJAX, sinon la seule chose qui veut obtenir immédiatement le téléchargement doit faire est de voir le code source de votre page; -)


0 commentaires

3
votes

noone pourrait s'assurer que vos intervalles sont exacts, surtout si l'onglet (ou le navigateur) est inactif (voir par exemple Cet article ), il est donc préférable de compter sur la différence de temps au lieu de compteur: xxx

" http://jsfiddle.net / ysilvestrov / buzd8 / 1 / "rel =" nfollow noreferrer "> Fiddle de travail


1 commentaires

J'ai fourni une réponse alternative qui est une modification de votre solution de violon qui utilise no jQuery et fonctionne avec des heures.



0
votes

C'est très simple, oui, vous pouvez le rendre très facilement. Voici la liaison en direct, où vous pouvez trouver le codding pour créer le compte à rebours, avant que le lien de téléchargement apparaisse: http://www.makingDifferent.com/make-countdown-timer-Townload-Button-Link-Appears/

acclamations !!


0 commentaires

3
votes

une modification du violon fourni par Yuriy qui n'utilise pas JQuery et fonctionne avec des heures également si le nombre de secondes est suffisamment large.

<div id="countdowntimertxt" class="countdowntimer">00:00:00</div>

    <script type="text/javascript">
    var sTime = new Date().getTime();
    var countDown = 3700; // Number of seconds to count down from.        

    function UpdateCountDownTime() {
        var cTime = new Date().getTime();
        var diff = cTime - sTime;
        var timeStr = '';
        var seconds = countDown - Math.floor(diff / 1000);
        if (seconds >= 0) {
            var hours = Math.floor(seconds / 3600);
            var minutes = Math.floor( (seconds-(hours*3600)) / 60);
            seconds -= (hours*3600) + (minutes*60);
            if( hours < 10 ){
                timeStr = "0" + hours;
            }else{
                timeStr = hours;
            }
            if( minutes < 10 ){
                timeStr = timeStr + ":0" + minutes;
            }else{
                timeStr = timeStr + ":" + minutes;
            }
            if( seconds < 10){
                timeStr = timeStr + ":0" + seconds;
            }else{
                timeStr = timeStr + ":" + seconds;
            }
            document.getElementById("countdowntimertxt").innerHTML = timeStr;
        }else{
            document.getElementById("countdowntimertxt").style.display="none";
            clearInterval(counter);
        }
    }
    UpdateCountDownTime();
    var counter = setInterval(UpdateCountDownTime, 500);
    </script>


0 commentaires

0
votes

Vous pouvez utiliser settimeout de JavaScript: xxx


0 commentaires