Variablen-Problem
Peter Gundermann
- javascript
0 Jürgen K.0 Peter G.
0 Jürgen Berkemeier0 Peter G.
Hallo,
ich habe hier ein Problem; da ich noch nicht lange 'programmiere', komm ich ´mit meinen Variablen nicht ganz klar, bzw. die Addition und/oder Übergabe klappt nicht ganz.
Ich habe vor, eine Seite zu erstellen, in der die Seiten im Hauptframe mit Hilfe JavaScript hoch- bzw. runtergezählt werden können. Gleichzeitig sollte eine direkte Seitenansteuerung da sein. Ich habe mir also folgendes Script zusammengebastelt:
<script type="text/JavaScript">
<!--
var current = 0
var a = "abizeitung"
var b = ".pdf"
var url =
function checkIt(val) {
if (val == -1) {
current = Math.abs(current+parseInt(val));
}
else if (val == +1) {
current = Math.abs(current+parseInt(val));
}
else if (val == 0) {
var current2 = window.prompt("Direkt auf Seite:",[current]);
current = current2
}
url = a +[current]+b;
parent.daten.location.href = url;
}
//-->
</script>
Das Hoch/Runterzählen klappt schon, auch die Direktansteuerung funkt. Allerdings wird nach dem Direktansteuern mit Seite Hoch/Runter nicht um 1, sondern auf die x*10+1 te Seite weitergezählt; scheinbar addiert das script nun z.B. 6+1 = 61
Hat jemand 'ne Ahnung? Wäre irgendwas in die Richtung ++1 / --1 möglich?
Danke im Voraus, Peter
Hallo,
Schreib die Addition einfach in ein eval() um sicher zu gehen:
eval(6+1)=7
Viele Grüße,
Jürgen
Danke soweit, hab ich gemacht.
Es funktioniert auch; allerdings nur zur Hälfte: Ich geb Seite 5 ein; geh ich dann 1 Seite zurück, funktionierts. will ich allerdings eine Seite weiter, dann gehts wieder zu 51.
die Zeile schaut nun so aus:
current = eval(current+parseInt(val));
kommt evtl. noch was dazu?
Hallo.
Wie wär's denn statt...
current = eval(current+parseInt(val));
...mit current+=val?
kommt evtl. noch was dazu?
Ja, ein Link: http://selfhtml.teamone.de/javascript/sprache/operatoren.htm#berechnung
Gruß
Norbert
Danke für den Tip; leider keine Änderung.
Ich hab nun auch mal 2 IF ELSE Schleifen verknüpft; bringt leider auch kein Erfolg. Zurück geht's, vorwärts addiert er nur die Ziffern.
Das Ganze schaut nun so aus:
if (val == 0) {
var current2 = window.prompt("Direkt auf Seite:",[current]);
current = current2;
}
else {
if (val == -1) {
current-=1;
}
else {
current+=1;
}
}
Habs mittlerweile mit jeglichem Operator versucht, auch die Reihenfolge sowohl im Scipt als auch bei den Links geändert - ohne Erfolg.
Hallo Peter,
var current2 = window.prompt("Direkt auf Seite:",[current]);
liefert einen String und keine Zahl! Mit
var current2 = eval(window.prompt("Direkt auf Seite:",[current]));
ist auch current2 eine Zahl un dann sollte es gehen.
Gruß, Jürgen
Vielen vielen Dank!
Hat geholfen und es funktioniert!
MfG, Peter