Toon posts:

[js] onbekende runtime-fout in IE.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een scriptje aan het maken en het is de bedoeling dat de elementen met als class dexus_column1 t/m dexus_column6 de content verdeelt moet worden in een aantal kolommen.

Nu heb ik het bijna af, en werkt het ook in FF, alleen IE geeft nog problemen.
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
40
41
42
43
44
45
46
47
48
49
50
window.onload = function() {
  for(b=1;b<7;b++) {
    inhoud = document.getElementsByClassName('dexus_column'+b)
    for(d=0;d<inhoud.length;d++) {
      teller=0;teller2=0;output="";
      subvoor = "<div class='dexus_column' style='float:left;width:"+94/b+"%;margin:0 "+2/b+"%;'>";
      subvoorlaatste = "<div class='dexus_column' style='float:left;width:"+94/b+"%;margin:0 0 0 "+2/b+"%;'>";
      subna = "</div>";
      tekst = inhoud[d].innerHTML;
      tekenspercolom = Math.ceil(tekst.length / b);
      for(g=0;g<(b-1);g++) {
        teller = tekenspercolom * g;
        check = tekst.charAt(teller);
        while(check != " ") {
          if(teller > 0) {
            teller--
            check = tekst.charAt(teller);
          } else {
            check = " "
          }
        }
        teller2 = (tekenspercolom * g) + tekenspercolom
        check2 = tekst.charAt(teller2);
        while(check2 != " ") {
          if(teller2 > 0) {
            teller2--
            check2 = tekst.charAt(teller2);
          } else {
            check2 = " "
          }
        }
        sub = tekst.substring(teller, teller2);
        output += subvoor+sub+subna;
      }
      sub = tekst.substring(teller2, tekst.length);
      output += subvoorlaatste+sub+subna;
      inhoud[d].innerHTML = output;
    }
  }
}
document.getElementsByClassName = function (c) {
  var r=new Array();var j=0;
  var o=document.all ? document.all : document.getElementsByTagName("*");
  for(i=0;i<o.length;i++) {
    if(o[i].className == c) {
      r[j]=o[i];j++;
    }
  }
  return r;
}
bij IE krijg ik namelijk een "onbekende runtime-fout".
ik ben er nu achter dat het komt door de < en de > in regel 6 en 7.
maar deze zijn natuurlijk wel nodig om het hele idee te laten werken.

hoe kan ik ervoorzorgen dat het zowel in IE als in andere browsers werkt?

greets dexus

Verwijderd

Zorg dat je de breuken netjes afrondt. 12.7654% in je styles staat niet zo lekker.

Verwijderd

Topicstarter
k, ik rond ze nu af op één cijfer achter de komma,
code:
1
Math.round(940/b)/10


maar dan krijg ik nogsteeds die irri runtime error :(

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:42

crisp

Devver

Pixelated

ik krijg hier op de getoonde code geen JS error in IE; kan je een compleet voorbeeld inclusief gebruikte markup geven?

Intentionally left blank


Verwijderd

Topicstarter
code:
1
2
3
<p class="dexus_column3">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
voorbeeld ^^

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:42

crisp

Devver

Pixelated

Een paragraaf mag ook geen blocklevel elementen bevatten; maak van die p eens een div ;)

Overigens zeer frapant dat de browser die normaal alles slikt daar in script-context opeens wel over struikelt, en de standards-compliant browser bij uitstek het zonder problemen slikt :D

[ Voor 53% gewijzigd door crisp op 27-12-2004 17:18 ]

Intentionally left blank


Verwijderd

Topicstarter
wow, sinds wanneer doet IE stricter dan FF,
tnx voor de oplossing :D

als ik nu een span erin zet met als css display:block
dan werkt het wel, maar dat mag dan tog ook eigenlijk niet?

[ Voor 47% gewijzigd door Verwijderd op 27-12-2004 17:29 ]


Verwijderd

Nee, dus waarom zou je dat doen?

Verwijderd

Topicstarter
omdat ik dan een width op kan geven.
Pagina: 1