Antje Hofmann: fünfzehnmal klappt es und dann ist Schluß

Beitrag lesen

Hallo Paule,

endlich mal ein interessantes Problem :-)

und danke schon mal für die Arbeit.
Leider habe ich dies noch nicht im Netz,
da es halt nach dem fünfzehntenmal ......

Diesen Fehler kann ich ebenfalls nachvollziehen. Die Ursache kann ich nur vermuten:

td table{ background-image:url(bilder/rasen2.gif); border:4px ridge; padding:2px }

hier legst du css-Instanz Nr.1 an

Bild=document.createStyleSheet();
Bild=document.createStyleSheet();

hier folgen insgesamt 30 weitere Instanzen. Keine Ahnung wie der Browser das verarbeitet. Aber es wirkt so, als ob er eine Art Speicherüberlauf bekommt. Also die vorhergehenden Instanzen intern speichert. Beim Aufruf der 32. Instanz, dein 16. Mal kommt es zur Fehlermeldung. Die Zahl 32 gibt mir irgendwie zu denken und deine Meldung bezüglich dem Arbeitsspeicher auch. :-)
Aber ich baue den Gedanken mal nicht weiter aus.

Dafür kann ich dir ein Workaround bieten.

<script language="JavaScript1.2" type="text/javascript">
<!--
var Bild;
Bild=document.createStyleSheet();

function nBild(nr)
{
if (document.all)
{
Bild.addRule ("td."+nr,"background-image:url(bg1.gif)");
}
}

function aBild (nr)
{
if (document.all)
{
Bild.addRule ("td."+nr,"background-image:url()");
}
}
//-->
</script>

Du erzeugst also nur eine Instanz vom Bild und änderst dann jeweils nur deren Eigenschaften.

Das funktioniert bei mir (IE5) fehlerfrei, wesentlich mehr als 15 mal.

Viele Grüße

Antje