Farbe ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Farbe ändern

    Hallo Zusammen

    Ich bin Java Script Leihe.

    Ich habe vom Homepagebetreiber der Handball Liga ein Script bekommen, damit ich die akutelle Tabelle von deren HP auslesen kann.

    Die Seite sieht wiefolgt aus:

    PHP-Code:
    <html>
    <
    head>
    <
    title></title>
    <
    meta name="author" content="Thomas">
    <
    meta name="generator" content="Ulli Meybohms HTML EDITOR">
    </
    head>
    <
    body text="#0050A0" bgcolor="#FFFFFF" link="#000000" alink="#000000" vlink="#000000">
    <
    div align="center"><font face="ARIAL,HELVETICA"><font size="+1">Tabelle HLA APO</font></font> <p></p>
     <
    table >
    <
    tr>
     <
    td><script language="JavaScript" type="text/javascript"
    src="http://www.sportlive.at/syndicate/extern/hla.at/tabelle_aufst_pl_vorschau_syndicate.php"></script> </td>
    </
    tr>
    </
    table>
     </
    div>
    </
    body>
    </
    html
    Das ganze sieht dann so aus..


    Beispiel
    Kann ich nun nachträglich die Farbe von Orange auf Gelb ändern ?

  • #2
    Re: Farbe ändern

    Original geschrieben von tom2000
    Hallo Zusammen

    Ich bin Java Script Leihe.
    Was ist ein "Java Script Leihe"? **kopfschütteln**

    Kann ich nun nachträglich die Farbe von Orange auf Gelb ändern ?
    im Prinzip schon, du musst entweder auf irgendein Event reagieren und die Farbe ändern, oder direkt beil onload, wobei, wenn letztere dann lieber serverseitig in PHP, such dir im Script dazu den Wert von bgcolor eines TR-Tag, welche #E78018 hat, dann in gelb ändern.

    Kommentar


    • #3
      das problem ist, dass ich auf das fertige java script von einem anderen Server lade....
      den quellcode , den ich angegeben habe, ist alles, was ich habe....
      somit wird die fertige seite angezeigt.
      nun möchte ich im nachhinein die farbe noch ändern.

      ist das irgendwie möglich ???

      Kommentar


      • #4
        schwierig

        ich kenne zwar auch nicht alle Tricks... denke aber, dass es hier schwer möglich ist, die Farbe zu ändern:
        da der HTML-Code der Tabelle -mittels php- durch den Server generiert wird... und dabei für den Tabellenkopf leider kein Klassenname vergeben wurde - weshalb man auf die Kopfzeile schlecht zugreifen kann!

        Du könntest mal bei den Betreibern anfragen, ob die in die Tags einen Klassennamen eintragen könnten - das ist in wenigen Minuten erledigt und würde es wesentlich einfacher machen, die Tabelle beliebig anzupassen!

        Du kannst zwar durch die Definition der Hintergrundfarbe durch CSS die 'bgcolor'-Eigenschaft welches das Script erzeugt überschreiben - allerdings gilt dies dann für die ganze Tabelle!
        (leider haben die Programmierer auch keinen Tabellen-Kopfzeilen-Tag <th> verwendet - diese Möglichkeit der Differenzierung ist damit auch ausgeschlossen)


        Schreibe einfach mal diesen Code in den Header deiner html-Datei:
        PHP-Code:
        <style>
        tr {
            
        background-color:yellow;
        }
        </
        style
        >> ist abe sicher nicht ganz das, was du willst....


        Man könnte eventuell noch versuchen per DOM auf die Elemente zu zugreifen... - hat bei mir aber nicht funktioniert:
        PHP-Code:
        <script>
        var 
        tableRows document.getElementsByTagName("tr");
        for(var 
        i=0i<tableRows.lengthi++) {
            
        tableRows[i].style.backgroundcolor "Yellow";
            
        alert(tableRows[i].style.backgroundcolor);
        }
        </
        script
        Vielleicht haben ja die Profis eine Idee dazu.....


        PS: Laie schreibt man so: "Laie"
        Zuletzt geändert von MrBusty; 27.02.2007, 09:01.

        Kommentar


        • #5
          [JavaScript] nicht schwierig - lol

          Gerde ist mir eine Lösung eingefallen!

          Schreibe folgenden Code ganz an das Ende des Bodys (also vor </body>):
          PHP-Code:
          <script>
          var 
          tableRows document.getElementsByTagName("tr");
          for(var 
          i=0i<tableRows.lengthi++) {
              
          tableRows[i].innerHTML tableRows[i].innerHTML.replace("#e78018","yellow");
          }
          </
          script

          Kommentar


          • #6
            yesss!!!

            hat leider nicht ganz funktioniert Mr.Busty

            Es ist kein tr sonder ein td !

            Aber viiiiiiiiiieeeeeeeeeeeeeeeeellllllllllllllllllleeeeeeeeeeeennnnnnnnn Dank

            Hat mir echt voll weitergeholfen

            Danke

            Tom

            Kommentar


            • #7
              [JavaScript] Bitte sehr!

              Original geschrieben von tom2000
              hat leider nicht ganz funktioniert Mr.Busty

              Es ist kein tr sonder ein td !
              Nun, bei mir funktionierte es mit "tr" ganz gut...
              - weshalb mir nicht gleich aufgefallen ist, dass der <tr>-Tag wirklich blöd gewählt war...

              Also mit innerHTML kann ich auf den inneren Source-Code eines Blockes zugreifen - nicht aber auf die Attribute dieses Blocks!

              Es sollte daher "table" das Beste sein. - Denn dieser Tag sollte stets den <tr>-Tag umschließen.

              Das es bei mir mit "tr" und bei dir mit "td" überhaupt ging, müsste daran liegen, dass sich die Handball-Ergebnis-Tabelle in einer weiteren Tabelle befindet.... - dies könnte sich aber änder, falls du deine Seite irgendwann einmal umstrickst -> also besser mal mit "table" versuchen.

              Warum bei dir das mit <tr> nicht geht, kann ich mir nicht erklären!

              ?:|
              Zuletzt geändert von MrBusty; 27.02.2007, 12:09.

              Kommentar


              • #8
                [JavaScript] Tipp

                Du hast die Arbeitsweise des Codes zwar sehr schön erkannt - aber was du da machst (6 Script-Blöcke nacheinander), dass kann man auch sehr viel einfacher machen:

                PHP-Code:
                    <script>
                    var 
                tables document.getElementsByTagName("table");

                    for(var 
                i=0i<tables.lengthi++) {
                        if(
                tables[i].innerHTML.indexOf("#e78018") >= 0) {
                            
                tables[i].innerHTML tables[i].innerHTML.replace("#e78018",                   "#FFF500");
                            
                tables[i].innerHTML tables[i].innerHTML.replace("Sparkasse",                 "");
                            
                tables[i].innerHTML tables[i].innerHTML.replace("UHC Raika Gänserndorf",     "Gänserndorf");
                            
                tables[i].innerHTML tables[i].innerHTML.replace("SG Handball West Wien",     "Westwien");
                            
                tables[i].innerHTML tables[i].innerHTML.replace("HSG Bärnbach/Köflach",      "Bärnbach/Köflach");
                            
                tables[i].innerHTML tables[i].innerHTML.replace("HC Sbüll Stadtwerke Bruck""HC Bruck");
                        }
                    }
                </
                script

                Sieht besser aus und ist auch performanter - außerdem funktioniert es jetzt auch, wenn keine äußere Tabelle vorhanden ist (also nur die Tabelle, welche vom Server kommt - siehe die Erklärung im verherigen Post)
                Zuletzt geändert von MrBusty; 28.02.2007, 07:04.

                Kommentar

                Lädt...
                X