OK, ich tippe jetzt hier einfach mal etwas ganz trocken rein, ungetestet (kann sein, dass einzelne Befehle oder CSS-Werte leicht anders heißen), aber so in etwa läufts.
Die seconds-Variable (im Javascript-Teil) enthält deinen Sekunden-Counter für den Download.
|
Quellcode
|
1
|
var seconds = 10;
|
Dann brauchst du in HTML Code ein Span, in dem du die Zeit anzeigst und einen unsichtbaren iframe (irgendwie hat das Forum probleme mit spitzen Klammern, musst natürlich die HTML-typischen spitzen Klammern einsetzen statt den runden):
|
Quellcode
|
1
|
(span id="spanxyz") Noch 10 Sekunden bis zum Download(/span)(iframe id="framexyz" style="width: 0px; height: 0px; visibility: hidden;")(/iframe)
|
Hier ist dann die JS-Funktion, die du in deinem Downloadlink statt dem direkten Ziel aufrufst.
Diese prüft, ob die Sekundenzahl schon abgelaufen ist. Wenn nicht, ruft sie sich eine Sekunde später selbst erneut auf, wenn ja, startet sie den Download.
Die lässt sich natürlich noch beliebig parametrisieren mit Downloadzielen usw, falls du mehrere Downloads anbieten willst.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
function loadDownloadTimer()
{
if (seconds == 0) {
document.getElementById("framexyz").src = "... download.zip ..."; //könnte auch href statt src heißen, probier mal aus
seconds = 10;
document.getElementById("spanxyz").innerHTML = "Download startet";
} else {
seconds--;
document.getElementById("spanxyz").innerHTML = "Noch " + seconds + " Sekunden bis zum Download";
window.setTimeout(" loadDownloadTimer;", 1000);
}
}
|