Script nur ausfürhen wenn es benötigt wird

aargau

Erfahrenes Mitglied
Hallo zusammen
Ich habe mit einem JS in einer Galerie die <- und -> Tasten belegt. Nun möchte ich aber das dies nur ausgeführt wird wenn entweder ein voriges oder ein nextes oder beide Bilder vorhanden sind. Nun hab ich aber keine ahnung wie ich das machen muss. im moment setze ich einfach wenn ein Bild besteht var tastenext1 = 'true' und var tastelast1 = 'true'

ich hoffe ihr wisst was ich suche. Im grunde einfach eine if abfrage, habe aber keine ahnung wie diese aussehen muss
Das Script:
Code:
function TasteLosgelassen (Ereignis) {
		  if (!Ereignis)
		    Ereignis = window.event;

		  if (Ereignis.which) {
		    Tastencode = Ereignis.which;
		  }else if (Ereignis.keyCode) {
		    Tastencode = Ereignis.keyCode;
		  }

		  if (Tastencode == 39){
window.location.href=tastenext;
		  }else if (Tastencode == 37){
window.location.href=tastelast;
		  }
		
		document.onkeyup = TasteLosgelassen ;
}
 
Das Problem dabei ist: Die Bilder werden im Filesystem des Servers gespeichert. Javascript hat keinen Zugang zum Filesystem, weil es eine clientseitige und keine serverseitige Spache ist. Du hast also keine Möglichkeit allein mit JS herauszufinden, wieviel Bilder auf dem Server liegen. Du wirst immer eine Variable mit der Anzahl brauchen.
 
Das Script muss ja auch nicht wissen wie viele es sind, sondern nur ob es noch ein "Link" fpr die Linke oder Rechte Steuerungstasten hat. Dazu hab ich eben tastenext1 und tastelast1 mit true belegt wenn noch eines kommt. Für mich ist eigentlich nur fraglich wie die IF anweisung aussehen muss.

denn wenn ich es so mache:
if(tastelast1 || tastenext1)
// || sollte Oder sein ?
{

function TasteLosgelassen (Ereignis) {
if (!Ereignis)
Ereignis = window.event;

if (Ereignis.which) {
Tastencode = Ereignis.which;
}else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}

if (Tastencode == 39){
window.location.href=tastenext;
}else if (Tastencode == 37){
window.location.href=tastelast;
}

document.onkeyup = TasteLosgelassen ;
}

}

So bekomme ich jedoch im IE ein Fehler das tastelast1 undefiniert seie... Denke mal das die IF anfrage nicht so aussehen muss. Keine ahnung wie :(
 
Ah, dann habe ich dich falsch verstanden.

Die if-Anweisung ist so wie sie in deinem Post eben steht jedenfalls richtig, wobei ich sie eher so einbauen würde:
Javascript:
if( Tastencode==39 && tastenext1 ) {
    window.location.href=tastenext;
} else if ( Tastencode==37 && tastelast1 ) {
    window.location.href=tastelast;
}
Wenn du eine Fehlermeldung bekommst, dann würde ich mir mal genau die Definition der Variablen anschauen und an welcher stelle sie im Script steht.
 
Zuletzt bearbeitet:
Danke für die Hilfe. Ich habe das Problem wohl gefunden. Ich hab das Script innderhalb eines PHPs ausgeführt korrekt müsste es wohl so sein:
Code:
<SCRIPT LANGUAGE="JavaScript">var tastenext1= "<? echo $var ;?>" ; 
	</SCRIPT>
Ja, so wie du es oben geschrieben hast ist es natürlich noch besser.
Danke für die Hilfe!
 

Neue Beiträge

Zurück