script werkt niet in FF

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo ,


Onderstaande script van internet geplukt


Alleen werkt (weer eens) niet in Firefox


Iemand de oplossing??

Verder hoe komt het zijn dit verouderde scripts , valt me op hoeveel er wel niet in FF werken!!

<img src="../img/test.png" border="1" id="spotlight" speed="99">

<!-- verander hierboven de snelheid..de url... en de naam / doel van je plaatje -->

<script language="JavaScript1.2">




if (document.all&&window.spotlight){
var x=new Array()
var direction=new Array()
var y=new Array()
if (spotlight.length==null){
spotlight[0]=document.all.spotlight
x[0]=0
direction[0]="right"
y[0]=spotlight[0].height
spotlight[0].filters.light.addPoint(100,50,100,255,255,255,90)
}
else
for (i=0;i<spotlight.length;i++){
x=0
direction="right"
y=spotlight.height
spotlight.filters.light.addPoint(100,50,100,255,255,255,90)
}
}

function slidelight(cur){
spotlight[cur].filters.light.MoveLight(0,x[cur],y[cur],200,-1)

if (x[cur]<spotlight[cur].width+200&&direction[cur]=="right")
x[cur]+=10
else if (x[cur]>spotlight[cur].width+200){
direction[cur]="left"
x[cur]-=10
}
else if (x[cur]>-200&&x[cur]<-185){
direction[cur]="right"
x[cur]+=10
}
else{
x[cur]-=10
direction[cur]="left"
}
}

if (document.all&&window.spotlight){
if (spotlight.length==null)
setInterval("slidelight(0)",spotlight[0].speed)
else
for (t=0;t<spotlight.length;t++){
var temp='setInterval("slidelight('+t+')",'+spotlight[t].speed+')'
eval(temp)
}
}
</script>
 
Ik denk dat window.<element_id> en document.all.<id> niet meer mogelijk is in nieuwere browsers en misschien zelfs alleen ooit in Internet Explorer heeft gewerkt.

De juiste benadering is de methode getElementById()

dus
window.getElementById('spotlight') in plaats van window.spotlight.


Veel oude scripts werken niet omdat ze, terugblikkend, slecht geschreven zijn. Het is achteraf makkelijk gezegd, maar er is vaak geen rekening gehouden met veranderingen in de toekomst. Of ze zijn alleen afgestemd op IE waar veel methodes zaten die de standaard nooit gehaald hebben en dus in nieuwere browsers niet werken.
 
Laatst bewerkt:
Ik denk dat window.<element_id> en document.all.<id> niet meer mogelijk is in nieuwere browsers en misschien zelfs alleen ooit in Internet Explorer heeft gewerkt.

De juiste benadering is de methode getElementById()

dus
window.getElementById('spotlight') in plaats van window.spotlight.

Bedankt voor uitleg!!

er komt in script voor:

dit
if (document.all&&window.spotlight){ ( komt 2x in script voor)

veranderd in
if (document.all&&window.getElementById('spotlight')

maar werkt helaas niet , of bedoelde je het anders??
 
document.all is oud (veel te oud) en moet je niet meer gebruiken. Het is ook niet nodig als je alle elementen een id geeft. Dan kun je elk element gewoon met document.getElementById vinden. Zeker als je een goed systeem aanhoud voor je id's is het heel makkelijk.

[rant]
En inderdaad, oude scripts werken niet in Firefox omdat er geen (goede) standaarden waren in die tijd. Daardoor werkte bijna alles óf in Internet Explorer óf in Netscape. Of er waren twee compleet verschillende scripts voor Netscape en IE. Hoe dan ook, er zijn nu wél goede standaarden en Microsoft spoort webmasters niet aan rekening te houden met de toekomst (of vandaag eigenlijk) door alle afgekeurde technieken nog steeds te ondersteunen. Iets wat je Microsoft kwalijk moet namen en niet Mozilla. Die oude scripts horen niet meer te werken. Dat ze in IE vaak nog wel werken is niet goed, het is een ramp voor het web.
[/rant]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan