[JS] Url in Javascript angeben

djjlx

---???---
ID: 62937
L
9 Mai 2006
599
21
Hallo!

Hab ein kleines Problem!

Hab ein JS Countdownscript etwas umgearbeitet:


Script weiter unten

Funktioniert alles einwandfrei!
Nur wie kann ich einen Link einfügen?

Nachdem der Countdown heruntergezählt wurde
wird der Text "Test" angzeigt will aber hier einen richtigen Link einbinden.

LG
 
Zuletzt bearbeitet:
HTML:
[...]
numberCountdown.innerText = "";
var link = document.createElement("a");
link.setAttribute("href", "https://www.example.com/");
link.appendChild(document.createTextNode("Test"));
numberCountdown.appendChild(link);
[...]

So in etwa könnte das funktionieren.

[edit]
Ich sehe jedoch nirgends, wo du numberCountdown definierst?
Weiters solltest du danach den Interval-Timer wieder löschen.
[/edit]
 
Hy!

Jetzt hab ich noch ein Problem!

Leider kann ich JS nur ganz gar nicht :ugly:

PHP:
<script language="JavaScript">
<!--//Zeit Bis zum Start
var SEC = <? echo"$sec";?>;var MIN = <? echo"$min"; ?>;
setInterval("startCountdown()",1000)
function startCountdown(){ 
if(MIN >= 10 && (SEC - 1) >= 10) {  
  SEC = SEC - 1;  
  numberCountdown.innerText = MIN + ":" + SEC;
} else if(MIN >= 10 && (SEC - 1) < 10 && (SEC - 1) >= 0) {
  SEC = SEC - 1;  
  numberCountdown.innerText = MIN + ":0" + SEC;
} else if( MIN < 10 && MIN >= 0 && (SEC - 1) < 10 && (SEC - 1) >= 0) {
  SEC = SEC - 1;  
  numberCountdown.innerText = MIN + ":0" + SEC;
} else if(MIN < 10 && MIN >= 0 && (SEC - 1) >= 10) {
  SEC = SEC - 1;
  numberCountdown.innerText = MIN + ":" + SEC;
} else if((MIN - 1) >= 10 && SEC == 0) {
  SEC = 59;  MIN = MIN - 1;  
  numberCountdown.innerText = MIN + ":" + SEC;
} else if((MIN - 1) < 10 && (MIN - 1) >= 0 && SEC == 0) {
  SEC = 59;  MIN = MIN - 1;  numberCountdown.innerText = MIN + ":" + SEC;
} else if(MIN == 0 && SEC == 0) {  
  numberCountdown.innerText = ""; var link = document.createElement("a"); link.setAttribute("href", "?content="); link.appendChild(document.createTextNode("Let´s go")); numberCountdown.appendChild(link);
}
}
clearInterval("startCountdown()")
//-->
</script>

Über die PHP Variablen fütter ich das script mit dem Countdown (reloadsperre).

Funktioniert alles.
Wenn der Countdown jetzt 0 erreicht wird der Link angezeigt. Perfekt! Danke an Moloc an dieser Stelle!

Nur wenn man jetzt die Seite aktualisiert wird wieder 00:00 angezeigt an statt des Links. :hö: :cry:

LG
 
Zuletzt bearbeitet:
Versuch mal den Cache zu leeren, eventuell hilft das. (Hatte auch schon mal solche Probleme, aber das waren glaub ich weekly-builds von Browsern)

Gibt es ein link dazu, bei dem man sich das anschauen kann?

Eventuell noch die ganzen if-else dinger mit einem einzelen else abfagen, für den Fehlerfall.
 
Morgen!
Keiner ne Idee?!


Mal den generierten Quelltext ansehen, wie die beiden Variablen gesetzt werden:

Code:
var SEC = <? echo"$sec";?>;
var MIN = <? echo"$min"; ?>;

Nur wenn PHP da wirklich jedes mal 0 reingeschrieben hat, zeigt das JavaScript den Link an. Könnte ja sein, die Berechnung von $min und $sec ist schon falsch (-1?).
 
Kannst du den kompletten Javascript-Code nochmals posten? Ich bin mir nicht sicher, ob der obige Code noch aktuell ist.
Und bitte auch den HTML-Code, wo der Countdown und später der Link angezeigt werden soll.
 
Morgen!

Kannst du den kompletten Javascript-Code nochmals posten? Ich bin mir nicht sicher, ob der obige Code noch aktuell ist.
Und bitte auch den HTML-Code, wo der Countdown und später der Link angezeigt werden soll.

Code ist noch der gleiche wie oben!

Aufgerufen wird er mit

PHP:
<?php include("timer.php"); echo"<div id=\"numberCountdown\">00:00</div>";



Mal den generierten Quelltext ansehen, wie die beiden Variablen gesetzt werden:

Code:
var SEC = <? echo"$sec";?>;
var MIN = <? echo"$min"; ?>;

Nur wenn PHP da wirklich jedes mal 0 reingeschrieben hat, zeigt das JavaScript den Link an. Könnte ja sein, die Berechnung von $min und $sec ist schon falsch (-1?).

Stimmt im Quelltext wird tatsächlich -1 usw angezeit! Logisch weil ich ja nur den Reload timestamp mit time() abgezogen habe :ugly:

Hab jetzt versucht in der letzten else if Anweisung des Scripts statt ==0 =<0 zu schreiben.
Problem ist jetzt das im Quelltext folgendes steht:
Code:
var SEC = 6;var MIN = -10;
Somit das =<0 nur bei den Minuten zutreffen kann da die Sekunden nicht negetiv weiter gezählt werden.

LG
 
Habs glaub ich gelöst!

Hab im JS noch eine else if Anweisung hinzugefügt
Code:
} else if(MIN < 0) {

Jetzt funktionierts!

Danke für die Hilfe!
 
Also ich würde sagen, wenn dir php in das Script bei Minuten -10 reinschreibt, dann stimmt was im PHP-Script nicht.

Und ich würde versuchen, das ganze if-else-Zeugs los zu werden.
Du könntest doch generell in Sekunden zählen und nur für die Ausgabe in Minuten und Sekunden umrechnen, oder?
Code:
MIN = floor(GESAMT/60);
SEC = GESAMT % 60;

// einen abziehen
GESAMT--;

// Jetzt nur noch prüfen, ob GESAMT gleich 0 ist
// wenn dem so ist, dann den Code anzeigen
 
Ja so hatte ich es ja zuerst!
Nur hab ich dann versucht das der Counter auch weiterläuft wenn der user die seite verlässt.

Jetzt wird der reload zb. so gespeichert

$reload = time()+1800;

Kommt der User wieder "online" wird die aktuelle zeit vom Reload abgezogen

$time_offen = $reload-time();

ist der Reload jetzt älter als die jetzige Zeit wird er als - ausgegeben.

Mit else if(MIN < 0) wird nun der Link bei 0 angezeigt und auch wenn der counter schon im negativen Bereich ist.

Bin aber immer offen für bessere Lösungen :mrgreen::mrgreen::mrgreen:

LG
 
$time_offen = $reload-time();
ist der Reload jetzt älter als die jetzige Zeit wird er als - ausgegeben.
[...]
Bin aber immer offen für bessere Lösungen :mrgreen::mrgreen::mrgreen:

Wie wär's mit einem

PHP:
 if ($time_offen < 0) $time_offen = 0;

oder machen die negativen Zeiten irgendeinen tieferen Sinn?