Javascript startet teilweise nicht.
misterunknown
- javascript
0 Klawischnigg0 gast420 Felix Riesterer
0 misterunknown0 ChrisB
Moin moin,
ich habe ein Problem mit Javascript. Ich habe auf der entsprechenden Homepage (http://asparagus-films.de) eine Art Bildergalerie eingebunden, die ich selbst geschrieben habe. Es werden Bilder aus einem Verzeichnis ausgelesen, und dann zufällig in einem Abstand von ein paar Sekunden gewechselt. So sieht der Code aus:
<script type="text/javascript">
adresse=new Array(<?php echo(sizeof($filess)); ?>);
<?php
for($dsasd=0;$dsasd<sizeof($filess);$dsasd++){
echo("adresse[".$dsasd."] = \"sidepics/".$filess[$dsasd]."\";");
}
?>
function changeSidepics_repeatened() {
testrunning=1;
var zufall=Math.random()*<?php echo(sizeof($filess)-1); ?>+0;
zufall=Math.round(zufall);
document.getElementById('sidepics').src = adresse[zufall];
setTimeout ("changeSidepics_repeatened()",3000);
}
function changeSidepics() {
var zufall=Math.random()*<?php echo(sizeof($filess)-1); ?>+0;
zufall=Math.round(zufall);
document.getElementById('sidepics').src = adresse[zufall];
}
setTimeout('changeSidepics_repeatened()', 100);
</script>
//dann kommt der Rest der Seite und irgendwo steht dann:
<div class=sidebox align=center>
<img id=sidepics onclick="changeSidepics()" src="" width=150 height=100>
</div>
Es sind quasi zwei Funktionen, eine, die die ganze Zeit durchlaufen soll, und eine, die das Bild wechselt, wenn man darauf klickt.
Es funktioniert soweit auch alles, also die Bilder werden gewechselt. Nur manchmal, wenn man die Seite öffnet, passiert gar nichts. Da ist dort nur ein schwarzer Balken. Wer sich die Seite ansieht (http://asparagus-films.de) sieht in dem rechten Bereich unten die Bilder. Ich habe schon versucht, die Startverzögerung hochzusetzen, aber das hat auch nichts geholfen. Das Problem tritt auch unregelmäßig auf, an meinem Rechner fast nie, an dem meiner Eltern ab und zu.
Was kann ich tun um das Problem zu umgehen, bzw. wie kann man es anders lösen?
Grüße Marco
Hi there,
Was kann ich tun um das Problem zu umgehen, bzw. wie kann man es anders lösen?
Du sagst dem Skript nie dezidiert, daß es starten soll. Probier das einmal mit dem onload-Event, vielleicht hilft das ja...
Hi there,
Moin und danke für die schnelle Antwort,
Du sagst dem Skript nie dezidiert, daß es starten soll. Probier das einmal mit dem onload-Event, vielleicht hilft das ja...
Ich hab das mit dem setTimeout() aus dem Internet... Hat mir nicht gefallen, aber ich bin Javascript-Neuling. Ich probiers mal mit onload.
Grüße Marco
Hi there,
Ich hab das mit dem setTimeout() aus dem Internet... Hat mir nicht gefallen, aber ich bin Javascript-Neuling. Ich probiers mal mit onload.
Das eine hat mit dem anderen nichts zu tun. Der Onload-Event, in den Body einer Seite gesetzt, startet ein Skript, sobald diese Seite vollständig geladen wurde. Mit der settimeout-Methode beeinflusst Du nur das zeitliche Verhalten von Skripten...
<?php
bitte poste doch erst einmal den JavaScript-Code und nicht den PHP-Code
Lieber misterunknown,
ich habe ein Problem mit Javascript.
mit was? Mit JavaScript? Also dann lass uns über JavaScript diskutieren.
adresse=new Array(<?php echo(sizeof($filess)); ?>);
Moment mal, sagtest Du nicht "JavaScript"? Warum muss ich jetzt hier PHP-Code lesen? Wenn Du über JavaScript diskutieren willst, dann poste auch reinen JavaScript-Code. Je nachdem was Dein PHP-Code für Unsinn baut, ist dann der JavaScript-Code entsprechend sinnverletzt.
Nur manchmal, wenn man die Seite öffnet, passiert gar nichts. Da ist dort nur ein schwarzer Balken. Wer sich die Seite ansieht (http://asparagus-films.de)
Nein, ich sehe mir die Seite nicht an. Um Dir selbst helfen zu können, musst Du ersteinmal begreifen, wie Dein Problem gelagert ist. Dazu gehört auch, dass Du Dir klarmachst, in welchen Bereichen (PHP<->JS) Du nun nach welchen Ursachen suchen musst. Mein Tipp: Beschäftige Dich mit dem Code, den Dein Browser als Quelltext anzeigt.
Ansonsten scheinst Du ein Problem mit "JavaScript nach dem Laden der Seite ausführen" zu haben. Hierzu ein Lesetipp: Autostart eines JavaScriptes (lies gleich den darauf folgenden Absatz mit dazu!)
Liebe Grüße,
Felix Riesterer.
Moin,
Moment mal, sagtest Du nicht "JavaScript"? Warum muss ich jetzt hier PHP-Code lesen? Wenn Du über JavaScript diskutieren willst, dann poste auch reinen JavaScript-Code. Je nachdem was Dein PHP-Code für Unsinn baut, ist dann der JavaScript-Code entsprechend sinnverletzt.
Der PHP-Code liest, wie gesagt ein Verzeichnis aus, was mit Javascript verständlicherweise nicht funktioniert, weil es auf dem Client ausgeführt wird, das Verzeichnis aber auf dem Server liegt. Wenn es eine elegantere Methode gibt, Variablen von PHP Javascript zu übergeben, lasse ich mich gern eines besseren Belehren. Und da das Skript meistens funktioniert gehe ich davon aus, dass der Quelltext prinzipiell richtig ist.
Nein, ich sehe mir die Seite nicht an. Um Dir selbst helfen zu können, musst Du ersteinmal begreifen, wie Dein Problem gelagert ist. Dazu gehört auch, dass Du Dir klarmachst, in welchen Bereichen (PHP<->JS) Du nun nach welchen Ursachen suchen musst. Mein Tipp: Beschäftige Dich mit dem Code, den Dein Browser als Quelltext anzeigt.
Also der Code, den der Browser ausgibt, sieht relativ unübersichtlich aus, da (je nachdem wie viele Bilder im Verzeichnis sind, das Array haufenweise mit Adressen gefüttert wird. Deshalb hielt ich die Version für angebrachter.
Ansonsten scheinst Du ein Problem mit "JavaScript nach dem Laden der Seite ausführen" zu haben. Hierzu ein Lesetipp: Autostart eines JavaScriptes (lies gleich den darauf folgenden Absatz mit dazu!)
Das ist mal ein Tipp :) Danke.
Grüße Marco
Hi,
Moment mal, sagtest Du nicht "JavaScript"? Warum muss ich jetzt hier PHP-Code lesen? [...]
Der PHP-Code liest, wie gesagt ein Verzeichnis aus, was mit Javascript verständlicherweise nicht funktioniert, weil es auf dem Client ausgeführt wird, das Verzeichnis aber auf dem Server liegt.
Das ist aber uninteressant, wenn du ein JavaScript-Problem hast.
Also der Code, den der Browser ausgibt, sieht relativ unübersichtlich aus, da (je nachdem wie viele Bilder im Verzeichnis sind, das Array haufenweise mit Adressen gefüttert wird. Deshalb hielt ich die Version für angebrachter.
Wenn du uns nur dein PHP-Script zeigst, dann wissen wir nicht, welchen Code der Browser erhält - weil wir die Inhalte der Variablen nicht kennen, nicht wissen, was du aus dem Verzeichnis ausliest, etc.
Also können wir an hand dessen auch nicht beurteilen, was der Browser bei der Verarbeitung des Codes, den er letztendlich erhalten hat, vielleicht für Fehler findet.
Das ist eigentlich so logisch, dass es jedem auch ohne extra Erklärung einleuchten müsste. Traurigerweise müssen wir es hier trotzdem immer wieder erklären.
MfG ChrisB