PPils: getElementById alternative

nachdem mein thread jetzt 2 mal verschwunden ist versuch ichs noch ein drittes mal

also folgendes Script funzt einwandfrei im IE

function changelayout(num) {
colors = new Array("#9A1B22","#AEA387","#878F39","#747A92","#9B8065","#CDBD5B");

window.document.getElementById("bg_color").bgColor = colors[num];
window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";
}

Im Opera funzen beide anweisungen nicht, im Netscape lediglich die erste (bgcolor).

Kann ichs anders lösen??

  1. Hallo PPils, <-- Begrüßung trägt zum Klima bei

    also folgendes Script funzt einwandfrei im IE

    Eine Erklärung, was das Script tun soll, wäre praktisch

    function changelayout(num) {
    colors = new Array("#9A1B22","#AEA387","#878F39","#747A92","#9B8065","#CDBD5B");

    window.document.getElementById("bg_color").bgColor = colors[num];
    window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";
    }

    Im Opera funzen beide anweisungen nicht, im Netscape lediglich die erste (bgcolor).

    Welche Fehlermeldung gibt Dir Netscape aus? (tippe javascript: in die Adresszeile oder wähle Javascript-Konsole)

    Wo sind Deine Elemente mit dem id "bg_color" und "bgpic" im html-Sode? Wäre zur Analyse ebenfalls hilfreich. Hast Du Dir einzelne Werte einmal zur Fehlersuche per alert() ausgeben lassen?

    Schöne Grüße aus Köln-Ehrenfeld, <-- netter Abschied ebenfalls gerne gesehen... ;-)

    Elya

    --
    We are still confused, but on a higher level.
    1. http://brathaxe.mine.nu/carmen

      kannst hier gucken, ist aber bissle langsam da ich nur DSL hab, aber wenn du unten im SWF auf Options klickst kannste das Layout wechseln, dann weißt du was ich meine...im IE funzt es tadellos

      1. Hallo Ppils,

        http://brathaxe.mine.nu/carmen

        springt auf http://localhost/carmen/
        Ich kenn mich nicht so aus mit Servern, aber irgendwas stimmt da wohl nicht an Deinen Einstellungen... ach ja: hier steht, wie man Links im Forum anklickbar macht: http://forum.de.selfhtml.org/faq/#Q-19

        kannst hier gucken, ist aber bissle langsam da ich nur DSL hab,

        Jetzt versteh ich auch den Satz...

        ein Code-Schnipsel, wo Du die IDs hast und wo Du die Funktion aufrufst, würde ja schon reichen, wenn das mit einem Upload nicht klappt.

        Schöne Grüße aus Köln-Ehrenfeld,

        Elya

        --
        We are still confused, but on a higher level.
        1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <script type="text/javascript">

          function changelayout(num) {
          colors = new Array("#9A1B22","#AEA387","#878F39","#747A92","#9B8065","#CDBD5B");

          //window.document.all.bgpic.background = "backgroundhtml_" + (num+1) + ".jpg";
          window.document.getElementById("bg_color").bgColor = colors[num];
          window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";
          }

          </script>
          <title>  ||LEISURE SHOOTS||  </title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body id="bg_color" bgColor="#9A1B22">
          <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td align="center" valign="middle">
              <table width="760" height="560" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td id="bgpic" align="center" valign="middle" background="backgroundhtml_1.jpg">
                      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="600" height="400">
                        <param name="movie" value="home.swf">
                        <param name="quality" value="high">
                        <embed src="home.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="400"></embed></object></td>
            </tr>
                 </table>
            </td>
            </tr>
          </table>
          </body>
          </html>

          zum Link:
          Ich weiss auch nicht warum der Link nicht geht :(
          hab nen paar problemchen hier

      2. brauchst aber flash 6 falls du es nicht hast...

        1. hi,

          brauchst aber flash 6 falls du es nicht hast...

          wieso braucht man flash, um dir bei einem reinen html/javascript-problem helfen zu können?

          wenn dies wirklich so ist, dann hast du ein ungeeignetes beispiel online gestellt.

          gruss,
          wahsaga

  2. Moin!

    also folgendes Script funzt einwandfrei im IE

    function changelayout(num) {
    colors = new Array("#9A1B22","#AEA387","#878F39","#747A92","#9B8065","#CDBD5B");

    window.document.getElementById("bg_color").bgColor = colors[num];
    window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";
    }

    Im Opera funzen beide anweisungen nicht, im Netscape lediglich die erste (bgcolor).

    Kann ichs anders lösen??

    Ja klar. Ändere nicht irgendwelche möglicherweise nicht vorhandenen Objektattribute der HTML-Elemente (die außer dem IE niemand kennen muß), sondern benutze den DOM-Zugriff auf CSS-Eigenschaften.

    document.getElementById(whatever).style.backgroundColor = "#fff";

    - Sven Rautenberg

    --
    SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. kann ich damit auch bilder wechseln???

      1. Moin!

        kann ich damit auch bilder wechseln???

        Für den Tausch von Bildern nimm doch den klassischen Weg: document.images

        Oder meinst du CSS-Hintergrundbilder: style.backgroundImage

        - Sven Rautenberg

        --
        SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
        1. thx aber eine sache noch,

          mein script sieht jetzt so aus, die ersten zeilen...

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <script type="text/javascript">

          function changelayout(num) {
          colors = new Array("#9A1B22","#AEA387","#878F39","#747A92","#9B8065","#CDBD5B");

          window.document.getElementById("bg_color").style.background-color = colors[num];
          window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";
          }

          </script>
          <title>  ||LEISURE SHOOTS||  </title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body id="bg_color" style="background-color:#9A1B22">

          allerdings wechselt er die farben nicht...wo ist mein fehler..???

          1. Moin!

            window.document.getElementById("bg_color").style.background-color = colors[num];

            Von ...style.background-color hatte ich nichts geschrieben.

            window.document.getElementById("bgpic").background ="backgroundhtml_" + (num+1) + ".jpg";

            Von ...background hatte ich auch nichts geschrieben.

            Logisch also, dass das Skript nicht macht, was es soll, wenn du was falsches schreibst.

            Bedenke: Die Schreibweise ist hier wichtig. Großbuchstaben sind wichtig, Bindestriche sind wichtig (vor allem, dass sie NICHT vorkommen).

            Und zu guter letzt: Wenn du einer Untereigenschaft von style etwas zuweisen willst: Schreibe den Wert als String und genauso, als würdest du ihn einer CSS-Eigenschaft zuweisen. Dein Zuweisen eines Hintergrundbildes sollte also eine url("bildname")-Angabe haben, genau wie in CSS auch.

            - Sven Rautenberg

            --
            SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
            ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|