Toon posts:

Javascript werkt niet in Mozilla Firefox (0.9)?

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

Verwijderd

Topicstarter
Beste tweakers,

Onlangs heb ik een random banner (banner rotator) script, net hoe je het zelf ziet ;), van Hotscripts.com gevonden om te gebruiken op mijn site. Na alles aangepast te hebben aan mijn gegevens etc., werkt het als een zonnetje, zowel in IE en Netscape. Om de 3 seconden een nieuwe banner met goed plaatjes en links, evenals de targets.

Nu kwam ik er alleen achter dat dit script niet werkt in Mozilla Firefox versie 0.9. Maar naar mijn weten moeten javascripts gewoon werken in Mozilla en heb ik het fout?

Het onderstaande script staat gewoon in een TD.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<ilayer id="l1">
<layer id="l2">
<div id="l1">
<div id="l3" style="position:relative"> </div>
</div>
</layer>
</ilayer>

<script language="JavaScript">

var bannerArray = new Array();
var myCount=0;
// Banner Code Assignment
bannerArray[0] = "<A HREF=\"link1.htm\" target=\"mainFrame\">[img]\"banner1.gif\"[/img]</A>";
bannerArray[1] = "<A HREF=\"link2.htm\" target=\"mainFrame\">[img]\"banner2.gif\"[/img]</A>";
bannerArray[2] = "<A HREF=\"link3.htm\" target=\"mainFrame\">[img]\"banner3.gif\"[/img]</A>";

bannerRotate();

function bannerRotate() {

if(myCount > bannerArray.length-1){myCount=0;}

// Write out rotation
    if (document.all){          // it is IE
        document.all.l3.innerHTML=bannerArray[myCount];
    }

    else if (document.layers){  // it is NN

    document.layers.l1.document.layers.l2.document.open();
    document.layers.l1.document.layers.l2.document.write(bannerArray[myCount]);
    document.layers.l1.document.layers.l2.document.close();
    }
setTimeout("bannerRotate()", 3000);
myCount++;
}
// -->
</script>


Het enige wat het volgens mij zou kunnen zijn, zijn die <ilayer> opties. Of moet ik onder
code:
1
// Write out rotation
nog Mozilla aangeven? Weet iemand misschien wat voor probleem dit zou kunnen zijn?

Groeten Dick

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Je gebruikt code en elementen uit de middeleeuwen, document.all en ilayers? Ik denk dat je op hotscripts beter naar een moderner script kunt zoeken, of je maakt er zelf 1.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:10

RM-rf

1 2 3 4 5 7 6 8 9

Je script is enkel gemaakt voor het document.all- (msie en opera) en document.layers-model (netscape4x)
Mozilla werkt met de standaard DOM-method document.getElementById( 'idnaam' ) (wat msie5+ ook ondersteund):

vervang dit stuktje:
code:
1
2
3
    if (document.all){            // it is IE
        document.all.l3.innerHTML=bannerArray[myCount];
    }

met
code:
1
2
3
4
5
    if (document.all){            // it is IE
        document.all.idl3.innerHTML=bannerArray[myCount];
    } else if (document.getElementById) {   // it is Mozilla || other DOM-browser
        document.getElementById( 'l3' ).innerHTML=bannerArray[myCount];
    }

[ Voor 13% gewijzigd door RM-rf op 22-09-2004 17:19 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Nu is het geloof ik zo dat in FF PR 1.0 de 'document.all' reeks is toegevoegd.

[cynisch]ff upgraden en je probleem is opgelost ;) [/cynisch]

ik vind het eigenlijk maar niks, die knieval naar ranzige ouderwetse code.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Klopt, echter bij het testen van document.all zoals hier gebeurt, geeft Gecko een false terug.

[ Voor 5% gewijzigd door CrashOne op 22-09-2004 17:34 . Reden: jeez, wat was dat voor een zin? ]

Huur mij in als freelance SEO consultant!


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="banner"></div>

<script type="text/javascript">
  var bannerArray = new Array();
  var myCount = 0;

  bannerArray[0] = ["link1.htm", "mainFrame", "banner1.gif"]
  bannerArray[1] = ["link2.htm", "mainFrame", "banner2.gif"]
  bannerArray[2] = ["link3.htm", "mainFrame", "banner3.gif"]

  function bannerRotate()
  {
    document.getElementById("banner").innerHTML ="<a href = '" + bannerArray[myCount][0] + "' target='" + bannerArray[myCount][1] + "' >[img]'"[/img]</a>";

    myCount++;
    if (myCount == bannerArray.length) { myCount = 0; }
    setTimeout("bannerRotate()", 3000);
  }
  bannerRotate()
</script>

Deze methode is al een stuk netter, nog netter was via de DOM maar ik had geen zin om daar een voorbeeld van te maken :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

kom op; het is dat er hier heel veel overbehulpzame mensen rondlopen, maar gecopy-paste scriptjes helpen wij liever niet mee. We zien graag dat mensen zich zelf verdiepen in de techniek en proberen daar wat van op te steken...

Intentionally left blank

Pagina: 1

Dit topic is gesloten.