torsten: zellen hindergrund mit javascript steuern?

hallo,

hier erst mal meine tabelle:

<table border="0" cellspacing="5" cellpadding="5">
  <tr>
    <td width="100%" background="bild.jpg">steht irgendwas drin<td>
  </tr>
</table>

mit background="bild.jpg" wird ja ein hindergrund für die zelle geladen. jetzt benutzte ich allerdings als hindergrund eine alpha-transparente grafik (.PNG). um diese im IE dazustellen braucht man einen speziellen filter:

style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bild.png', sizingMethod='scale')"

damit funzt es auch wunderbar, nur im NS oder Mozilla wird dann dieses bild nicht angezeigt, ist ja auch ganz klar, weil filter nur von IE unterstützt werden. nun, jetzt will ich auf diese grafiken nicht verzichten und trotzdem auch die grafiken im NS oder Mozilla darstellen können. mit javascript hab ich ne wunderbar funktionierente browser-weiche erstellt:

<script>
d = document;
bname = navigator.appName;
bversion = parseInt(navigator.appVersion);
d.write('<style type="text/css">');

if ((browser.indexOf("msie") != -1) && (browser.indexOf("opera") == -1))

d.write("#td { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bild.png', sizingMethod='scale') }");

else if ((browser.indexOf('mozilla')!=-1) && (browser.indexOf('spoofer')==-1) && (browser.indexOf('compatible') == -1) && (browser.indexOf('opera')==-1) && (browser.indexOf('webtv')==-1) && (browser.indexOf('hotjava')==-1))

d.write("#td { background: url('bild.png') }");

d.write('</style>');
</script>

wie kann ich jetzt dieses script in meine zelle laden?
vielleicht so:

<table border="0" cellspacing="5" cellpadding="5">
  <tr>
    <td width="100%" background="javascript">steht irgendwas drin<td>
  </tr>
</table>

ich weiß es nicht, hab schon alles mögliche ausprobiert, ich komm einfach nicht weiter. würde mich freuen wenn mir jemand weiter helfen kann.

wer rechtschreibfehler findet kann sie behalten ;-)

gruß
torsten

  1. Hallo,

    <table border="0" cellspacing="5" cellpadding="5">
      <tr>
        <td width="100%" background="bild.jpg">steht irgendwas drin<td>
      </tr>
    </table>

    Was ich dir empfehlen würde ist eine externe CSS Datei zu verwenden.
    dort kannst du dann deine Angaben machen wie

    #meinetabelle {
     border-spacing: 5px;
    }
    #meinetabelle td {
     padding: 5px;
     width: 100%;
     background-image: url(bild.png);
     filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bild.png', sizingMethod='scale')
    }

    mit background="bild.jpg" wird ja ein hindergrund für die zelle geladen. jetzt benutzte ich allerdings als hindergrund eine alpha-transparente grafik (.PNG). um diese im IE dazustellen braucht man einen speziellen filter:

    if ((browser.indexOf("msie") != -1) && (browser.indexOf("opera") == -1))

    Ich glaube die mac Version des IE kann halbtransparente pngs anzeigen

    else if ((browser.indexOf('mozilla')!=-1) && (browser.indexOf('spoofer')==-1) && (browser.indexOf('compatible') == -1) && (browser.indexOf('opera')==-1) && (browser.indexOf('webtv')==-1) && (browser.indexOf('hotjava')==-1))

    Und was ist mit Konqueror, Safari, NS4.x und all den anderen Browsern die du nicht berücksichtigt hast und die aber trotzdem halbtransparente pngs wunderbar anzeigen können?

    ich weiß es nicht, hab schon alles mögliche ausprobiert, ich komm einfach nicht weiter. würde mich freuen wenn mir jemand weiter helfen kann.

    Mein obriges Beispiel habe ich nicht ausprobiert kann sein dass es nicht gleich auf Anhieb funktioniert.  Was dein ansprechen mittels JS angeht du musst die Tabellen benennen also id="peter" z.B. und dann mittels getElementById ansprechen. Guck mal in SelfHTML wie das genau geht.

    Grüße
    Jeena Paradies

    --
    Jeenas Welt in ein paar Sätzen:
    http://www.jeenaparadies.de/artikel/
    1. hi,

      gut werd ich mal alles ausprobieren.
      aber nich mehr heute, jetzt geh ich schlafen ;-)
      dank dir !

      gruß
      torsten