Archiv verlassen und diese Seite im Standarddesign anzeigen : 5 sekunden warten bevor ein link erscheint
Ellyrion
09.06.2007, 22:09
hallo,
ich möchte auf meiner hp ne download datenbank einrichten^^
wenn man eine datei zum download auswählt, soll ein countdown erscheinen. Bitte warte [5; 4; 3; 2; 1] Sekunden. wenn die 5 sec. vorbei sind soll der downloadlink angezeigt werden.
[] = das was der countdown anzeigt.
kann mir da jemand einen code für geben? kenn mich nämlich mit sowas nicht so aus;)
danke:)
Gegenfrage : Warum willst du das machen?
Wenn ich was runterladen will, will ich das auch so schnell wie möglich - solche Zähler nerven da doch.
Ellyrion
10.06.2007, 17:48
Gegenfrage : Warum willst du das machen?
Wenn ich was runterladen will, will ich das auch so schnell wie möglich - solche Zähler nerven da doch.
wirkt einfach professionell und kann, denke ich auch automatisierte downloads unterbinden.;)
edit: ausserdem würde ich gern wissen wie man sowas amchen kann^^
Thoronador
10.06.2007, 18:26
wirkt einfach professionell und kann, denke ich auch automatisierte downloads unterbinden.;)
Ob es professionell wirkt oder einfach nur stört, ist Ansichtssache (wie so vieles). ;) Allerdings wird man damit kaum automatisierte Downloads unterbinden können, denn die gehen wohl über den Quellcode und da steht der Link ja auch irgendwo drin.
Zu der Frage: mit reinem HTML wird das nicht gehen, dazu braucht es JavaScript, um die Dynamik reinzubringen. Ein mögliches Script für einen zehnsekündige Wartezeit sähe dann etwa so aus (ungetestet):
...
<script language="JavaScript" type="text/javascript">
<!--
function StartCountdown(sekunden)
{
for(i=sekunden;i>=0;i=i-1)
{
setTimeout("count_down(" + i + ")", (sekunden-i)*1000);
}
}
function count_down(sec)
{
if (sec>0)
{
x = document.getElementById("zeit");
x.innerHTML = "noch "+sec+" Sekunden";
}
else
{
x.innerHTML ="<a href='www.google.de'>Link</a>";
}
}
StartCountdown(10);
// -->
</script>
<table>
<tr>
<td id="zeit">
</td>
</tr>
</table>
...
Drumherum dann noch der restliche HTML-Code.
Vertaler
10.06.2007, 18:54
Z. B. per JavaScript – dafür muß es natürlich aktiviert sein. Ob du den Link auf einen Button in einem Formular setzt oder „normal“ per Anker einbindest, steht dir relativ frei, aber daran muß natürlich das Script angepaßt werden.
Beispiel: ein Formular mit id="download" und einem <input type="submit" id="submitbutton" value="herunterladen" />.
<script language="javascript" type="text/javascript">
<!--
var sekunden = 5;
var warte = sekunden * 1000;
document.download.submitbutton.disabled = true; // der Button wird deaktiviert (sofern JavaScript aktiviert ist)
window.setTimeout('document.download.submitbutton.disabled = false', warte); // wenn die Zeit abgelaufen ist, wird der Button aktiviert
// dürfte soweit klappen - jetzt noch die Ausgabe des Buttons anpassen
for (i=1; i<=sekunden; i++)
{
window.setTimeout('update('+i+')', i*1000);
};
function update(num)
{
if (num == (warte/1000))
{
document.download.submitbutton.value = 'herunterladen'; // wenn die Sekunden abgelaufen sind, wird die Input-Anzeige zurückgesetzt
}
else
{
uebrig = (warte/1000)-num;
document.download.submitbutton.value = uebrig; // ansonsten ist der Wert des Buttons die übrigen Sekunden
};
}
Bei einfachem Anker würde ich empfehlen, anstelle der Deaktivierung des Buttons beim Link den Wert der CSS-Eigenschaft „visibility“ auf „hidden“ (und zum Anzeigen eben „visible“, oder was gewünscht wird) zu setzen (per document.getElementById(id_des_links).style.visibility = "hidden").
Die Sekunden dann einfach wieder in einem Input-Feld herunterzählen lassen (Änderung des Wertes wie oben).
Verständlich?
Ellyrion
11.06.2007, 15:29
@ Thoronador: ja, dein code funktioniert:)
vielen dank:)
@ Vertaler: dein code funktioniert bei mir nicht? ich glaub ich mach irgendwas falsch^^ kannst du bitte auch so ein beispiel mit link wie thoronador posten. vielen dank:)
schonmal vielen dank an euch:)
Vertaler
11.06.2007, 22:14
Hm, da waren noch ein paar kleine Fehler drin, daran wird’s liegen.
Hier etwas, was direkt eingebaut werden kann, mit einfachem Link und Countdown in einem Input-Feld:
<input size="1" id="countdown" value="5" /><a id="link" href="abc.htm">der Link</a>
<script language="javascript" type="text/javascript">
<!--
var sekunden = 5;
var warte = sekunden * 1000;
document.getElementById("link").style.visibility = "hidden";
for (i=1; i<=sekunden; i++)
{
window.setTimeout('update('+i+')', i*1000);
}
function update(num)
{
if (num == (warte/1000))
{
document.getElementById("countdown").style.visibility = "hidden";
document.getElementById("link").style.visibility = "visible";
}
else
{
uebrig = (warte/1000)-num;
document.getElementById("countdown").value = "" + uebrig;
}
}
-->
</script>
Vorteil davon: wenn man JavaScript deaktiviert hat, wird der Link trotzdem angezeigt. Nur eben sofort. Dadurch werden Nutzer, die kein JavaScript haben/wollen, nicht ausgeschlossen.
Ellyrion
12.06.2007, 21:19
Hm, da waren noch ein paar kleine Fehler drin, daran wird’s liegen.
Hier etwas, was direkt eingebaut werden kann, mit einfachem Link und Countdown in einem Input-Feld:
<input size="1" id="countdown" value="5" /><a id="link" href="abc.htm">der Link</a>
<script language="javascript" type="text/javascript">
<!--
var sekunden = 5;
var warte = sekunden * 1000;
document.getElementById("link").style.visibility = "hidden";
for (i=1; i<=sekunden; i++)
{
window.setTimeout('update('+i+')', i*1000);
}
function update(num)
{
if (num == (warte/1000))
{
document.getElementById("countdown").style.visibility = "hidden";
document.getElementById("link").style.visibility = "visible";
}
else
{
uebrig = (warte/1000)-num;
document.getElementById("countdown").value = "" + uebrig;
}
}
-->
</script>
Vorteil davon: wenn man JavaScript deaktiviert hat, wird der Link trotzdem angezeigt. Nur eben sofort. Dadurch werden Nutzer, die kein JavaScript haben/wollen, nicht ausgeschlossen.
danke für deine mühe:)
danke auch noch mal an thoronador.
von nun an komm ich alleine mit dem downloadsystem klar.
vielen dank:)
wenn man das ganze mit php macht und die downloadlinks nach ablauf einer bestimmten zeitspanne aus einer datenbank oder einer textdatei auslesen lässt, dann ließen sich so automatisierte downloads unterbinden ;)
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.