2.7k Aufrufe
Gefragt in Webseiten HTML von petra65 Experte (1.8k Punkte)
Hallo,

woran kann das liegen, dass eine Slideshow nicht vom Firefox und Opera angezeigt wird (Javascript ist bei beiden aktiviert).
Der IE zeigt die Bilder an.

Der Code sieht folgendermassen aus:

<script>
<!--
if (document.all){
document.write('<img src="slideshow/image_01.jpg" id="box">');
}
//-->
</script>
<script language="JavaScript">
<!--
if (document.all){
pics=new Array(
"slideshow/image_01.jpg",
"slideshow/image_02.jpg",
"slideshow/image_03.jpg",
"slideshow/image_04.jpg",
"slideshow/image_05.jpg",
"slideshow/image_06.jpg",
"slideshow/image_07.jpg",
"slideshow/image_08.jpg",
"slideshow/image_09.jpg",
"slideshow/image_10.jpg",
"slideshow/image_11.jpg",
"slideshow/image_12.jpg",
"slideshow/image_13.jpg"
)
//Transition speed. 4000 = 4 seconds etc.
delay=3000;

//Nothing needs altering paste here.
l=new Array()
for (i=0; i < pics.length;i++){
l[i]=new Image()
l[i].src=pics[i]
}
n="progid:DXImageTransform.Microsoft.";
f=new Array()
f[0]="Wheel(spokes=4)";
f[1]="Blinds(Bands=10,direction=up)";
f[2]="Stretch(stretchstyle=PUSH)";
f[3]="Stretch(stretchstyle=SPIN)";
f[4]="RadialWipe(wipestyle=RADIAL)";
f[5]="RadialWipe(wipestyle=WEDGE)";
f[6]="Checkerboard(Direction=right,SquaresX=8,SquaresY=8)";
f[7]="Fade(Overlap=1.00)";
f[8]="GradientWipe(GradientSize=0.25,wipestyle=0,motion=forward)";
f[9]="Iris(irisstyle=CIRCLE,motion=out)";
f[10]="Iris(irisstyle=STAR,motion=out)";
f[11]="Barn( motion=out,orientation=vertical)";
f[12]="Barn( motion=in,orientation=vertical)";
f[13]="Strips(motion=leftup)";
f[14]="Slide(slidestyle=HIDE,Bands=1)";
f[15]="Slide(slidestyle=PUSH,Bands=1)";
f[16]="Slide(slidestyle=SWAP,Bands=1)";
f[17]="RandomDissolve(duration=1)";

imgstep=0;

function ani(){
rnd=f[Math.floor(Math.random()*f.length)]
box.style.filter=n+rnd;
box.filters[0].apply();
box.src=l[imgstep].src;
box.filters[0].play();
imgstep++;
if (imgstep >= l.length) imgstep=0;
setTimeout("ani()",delay);
}
window.onload=new Function("setTimeout('ani()',delay)")
}
//-->
</script>

Ich hoffe, dass sich jemand damit auskennt ...

Gruss - Petra

5 Antworten

0 Punkte
Beantwortet von road-runner Experte (5.8k Punkte)
Ich bon zwar kein Spezialist, könnte mir aber vorstellen, dass es an document.all liegt. Siehe den diesbezüglichen Artikel im Firefox-Wiki.

Auszug:

Da Firefox weder die Microsoft-Eigenschaft „document.all“, noch die veraltete Netscape-Eigenschaft „document.layers“ unterstützt, wird hier für den Firefox kein Code ausgeführt. Stattdessen sollte man die Funktion „document.getElementById“ [1] (http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id) benutzen. Diese Funktion ist im Gegensatz zu den anderen im Webstandard enthalten, und wird von allen neueren Browsern problemlos interpretiert.


Gruss

Road-Runner
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Hallo,

vielen Dank, nun wird zumindest das 1. Bild angezeigt- die Show funktioniert leider nicht.

Gruss - Petra
0 Punkte
Beantwortet von road-runner Experte (5.8k Punkte)
Dann muss ich leider passen. Ich denke, es wird sich noch ein Javascript-Spezialist einfinden, der Dir weiterhelfen kann.

Gruss

Road-Runner
0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
Dank Google hat sich mein Problem gelöst, ich habe ein anderes Script gefunden, dieses funktioniert perfekt.

Trotzdem Danke ;-)
0 Punkte
Beantwortet von
zu diesem Script kann man nur sagen: es ist sehr sehr alt und war schon in seiner Jugend kompletter Müll

nur soviel:
an dieser Stelle

l=new Image()
l.src=pics

fehlen die Array-Indices

und auf das Bild mit der ID "box" wird auf eine Art und Weise zugegriffen, deren Logik sich nur den IE-Programmierern erschließt, alle richtigen Browser kennen den Quatsch nicht und infolgedessen führt das Script dort nur zu Fehlern.


Ich kann nur hoffen, dass das neugefundene Alternativscript besser ist. Tipp: Finger weg von allem, was language="JavaScript" und document.all oder gar document.layer beinhaltet. Das sind Kennzeichen für Scripte aus dem letzten Jahrtausend.
...