Griever: Warum geht das nicht?

Hi.

Ich habe mir mal was kleines geschrieben. Aber das was ich versuchten wollte, geht nicht mal ansatzweise. (Wird nur im IE 4.x^ genutzt!!!)

<body>
<script language="JavaScript">
<!--
document.write("<style>\n"+
               "a.Menue_Item div {cursor:default;text-decoration:none;}\n"+
               "a.Menue_Item div div {background-color:white;}\n"+
               "a.Menue_Item:hover div div {background-color:black;}\n"+
               "</style>")
obj = (document.getElementById("SDG_Menue"))?"SDG_2_Menue":"SDG_Menue";document.write("<span id=""+obj+""></span>")
function init()
{
}
var hoehe = 18
function GColor(r,g,b) {
 r = 255-((r>255)?255:(r<0)?0:r)
 g = 255-((g>255)?255:(g<0)?0:g)
 b = 255-((b>255)?255:(b<0)?0:b)
 var rr = (r<16)?"0":"",rb = (b<16)?"0":"",rg = (g<16)?"0":"";
 this.Color = String("#"+rr+r.toString(16)+""+rb+b.toString(16)+""+rg+g.toString(16)).toUpperCase()
}
function Color(r,g,b) {
 var rr = (r<16)?"0":"",rb = (b<16)?"0":"",rg = (g<16)?"0":"";
 r = (r>255)?255:(r<0)?0:r
 g = (g>255)?255:(g<0)?0:g
 b = (b>255)?255:(b<0)?0:b
 // Sorry, wenn die Zeilen zu lang sind
 this.Color = String("#"+rr+r.toString(16)+""+rb+b.toString(16)+""+rg+g.toString(16)).toUpperCase()
 this.LeftOb = "<a href="#" class="Menue_Item" style="border:0px;"><div style="margin-top:1px;display:inline;overflow:hidden;height:"+hoehe+"px;width:10px;cursor:default;border:1px solid "+this.Color+";background-color:"+this.Color+";"><div style="height:100%;overflow:hidden;cursor:default;display:inline;width:4px;">&nbsp;</div></div>"
 var gegenfarbe = new GColor(r,g,b)
 this.Val = "<div style="color:"+gegenfarbe.Color+";margin-top:1px;text-vertical-align:top;display:inline;overflow:hidden;height:"+hoehe+"px;width:180px;cursor:default;border:1px solid "+this.Color+";background-color:"+this.Color+";">("+this.Color+"/"+r+","+b+","+g+") "
 this.Val2 = "</div>"
 this.RightOb = "<div style="text-align:right;display:inline;margin-top:1px;overflow:hidden;height:"+hoehe+"px;width:10px;border:1px solid "+this.Color+";cursor:default;background-color:"+this.Color+";"><div style="height:100%;overflow:hidden;cursor:default;display:inline;width:4px;">&nbsp;</div></div></a>"
}
var StrG = "235,221,231"
var testfarbe
testfarbe = eval("new Color("+StrG+")")
document.write(testfarbe.LeftOb)
document.write(testfarbe.Val + "Home"+testfarbe.Val2)
document.write(testfarbe.RightOb+"<br>")
testfarbe = eval("new Color("+StrG+")")
document.write(testfarbe.LeftOb)
document.write(testfarbe.Val + "Seite 1"+testfarbe.Val2)
document.write(testfarbe.RightOb+"<br>")
testfarbe = eval("new Color("+StrG+")")
document.write(testfarbe.LeftOb)
document.write(testfarbe.Val + "Seite 2"+testfarbe.Val2)
document.write(testfarbe.RightOb+"<br>")

function Menue() {
  this.a = 0
  this.b = new Object()
  this.b.a = 0
  this.b.b = 2
  this.b.c = 2
}

var Items = new Menue()

document.body.onload = init
-->
</script>
</body>

Kann mir einer sagen, warum trotz der Style-Angabe die Items nicht verändert werden?

Link funktioniert. Doch Hover und so nicht.

Was ist da falsch?

  1. Ich habe mir mal was kleines geschrieben. Aber das was ich versuchten wollte, geht nicht mal ansatzweise. (Wird nur im IE 4.x^ genutzt!!!)

    bevor ich mir jetzt dieses script reinziehe, benutzt nur DU es, weil du meinst, es wird nur im IE genutzt? Dann kann ich und mein Zeigefinger es nämlich nicht nutzen, ich verfüge nur über einen schäbigen standardkonformen Firefox-Browser

    1. Dann möchte ich dich entwarnen.

      Es ist zwar nicht nur für mich. Aber es ist nur auf den IE lauffähig.

      Also mach dir keine Umstände.

      MFG
      Griever

      1. Dann möchte ich dich entwarnen.

        Es ist zwar nicht nur für mich. Aber es ist nur auf den IE lauffähig.

        Also mach dir keine Umstände.

        MFG
        Griever

        Ich mach mir aber Umstände. Ich liebe Javascript.
        Ich hab echt keinen IE, also teste ich das Teil jetzt mal auf Firefox, die Welt ist nun mal nicht nur IE. (Vermutlich setzt Du es in einer Firma ein, in der nur IE genutzt wird ?!) Ausserdem versteht Firefox zum Glück sogar IExplorerianisch

        ...

        Also, Du hast echt Mut, lach...
        Das Script kommt in meine Galerie...

        Bitte bitte nicht beleidigt sein, ich hab ja auch mal so angefangen... aber das ist das unordentlichste Script, das ich je gesehen hab... bin jetzt schon seit einer halben Stunde am sortieren, aber ich glaube das geht schneller, wenn man es neuschreibt und was immer es macht, nach Sichtung bin ich überzeugt, es macht es auch in 15 Zeilen (vielleicht sogar ohne javascript)

        Bitte sag doch mal in Worten, was Du haben willst, Ich helfe Dir gerne.

        Was ist da falsch?

        lol, besser, was ist da richtig?

        Da musse jetzt durch, hastes gepostet, kriegste die Meinung gegeigt...denk Dir nix, hier hat definitiv keiner ne Ahnung, tun alle nur so. Es gibt nur einen, der in einer Sparte einmal geglänzt hat. So sehr, daß alle sich im Glanz seiner Tat sonnen: Stefan Münz in: wie schreibe ich eine Dokumentation fürs Volk.

        1. Bitte bitte nicht beleidigt sein, ich hab ja auch mal so angefangen... aber das ist das unordentlichste Script, das ich je gesehen hab...

          Du kennst noch nicht die anderen Skript von Griever, das war eines der übersichtlichsten die er hier gepostet hat. (Such mal die Threads von ihm)

          bin jetzt schon seit einer halben Stunde am sortieren, aber ich glaube das geht schneller, wenn man es neuschreibt und was immer es macht, nach Sichtung bin ich überzeugt, es macht es auch in 15 Zeilen (vielleicht sogar ohne javascript)

          Denke ich auch, ich hab mir den Code auch reingezogen und versucht zu verstehen (immerhin scheint er im FF zu funktioneren, zumindest passiert was ohne JS Fehler)

          Struppi.

          1. Hey.

            1. Ich bin nicht beleidigt. Es ist die Roh-Version. Also ein stück Blei. Es ist unordentlich. Das gebe ich zu. Aber ich habe es mir halt so selbst beigebracht.

            2. Der Code braucht so viel platz, da er eine entscheidende Funktion verwendet: onmousewheel. Und jede Funktion ist halt nur ein Erstmodell. Die "optimierte" Fassung erstelle ich ganz am Ende. Da rationalisiere ich alles raus, was nicht benötigt wird. Derzeit sind einige Funktionen zur Stabilisierung während des Erstellens gedacht. (z. B. Fehlende Variablen zu überbrücken)

            3. Die Zeilenumbrüche fehlen immer, weil ich die Funktionen nicht sehen will, wenn ich neue Funktionen schreibe. Solange Sie funktionieren, während ich entwickel, halte ich sie in einer Zeile (ich benutz Phase 5)

            Außerdem wollte ich nur wissen, warum mir der IE 6.0 trotz style-angabe a:hover ... keine einzige Angabe davon übernimmt.

            MFG
            Griever

              1. Der Code braucht so viel platz, da er eine entscheidende Funktion verwendet: onmousewheel. Und jede Funktion ist halt nur ein Erstmodell. Die "optimierte" Fassung erstelle ich ganz am Ende. Da rationalisiere ich alles raus, was nicht benötigt wird. Derzeit sind einige Funktionen zur Stabilisierung während des Erstellens gedacht. (z. B. Fehlende Variablen zu überbrücken)

              Was du damit sagen willst erschließt sich einen Außenstehenden nicht und ist auch keine Erklärung für solchen Code.

              1. Die Zeilenumbrüche fehlen immer, weil ich die Funktionen nicht sehen will, wenn ich neue Funktionen schreibe. Solange Sie funktionieren, während ich entwickel, halte ich sie in einer Zeile (ich benutz Phase 5)

              Es gibt viele auch kostenlose Editoren, mit denen du Funktion "einklappen" kannst (z.b. jEdit)

              Außerdem wollte ich nur wissen, warum mir der IE 6.0 trotz style-angabe a:hover ... keine einzige Angabe davon übernimmt.

              wie gesagt, der HTML Code ist falsch, der CSS Code unverständlich, der JS unleserlich und dass alles läßt sich auch nicht nachvollziehen.
              Wenn du, wie von mir empfohlen, die Ausgabe mal in einer Variabeln sammeln würdest, könnte man ihn zu Debugging Zwecken mit einem alert() ausgeben oder eine Textarea schreiben, dann könnte man sehen ob evtl. der HTML Code nicht i.O. aber so.....

              MFG
              Griever

              Struppi.

              --
              Javascript ist toll (Perl auch!)
              1. Hi.

                Na wenn du meinst ...

                Optimiert liegts jetzt online ...

                1. Na wenn du meinst ...

                  Optimiert liegts jetzt online ...

                  Das ist jetzt übersichtlich?
                  Dann haben wir andere Vorstellung davon.

                  Sicher kannst du so sehen welche Funktionen existieren, dass ist wirklich übersichtlich, nur an dem Code zu arbeiten - und das wäre der einzige Grund warum man wissen muss wie die Funktionen heißen - kann man nicht mehr.

                  Struppi.

                  --
                  Javascript ist toll (Perl auch!)
  2. Deine Beschreibung im Titel ist Wahnsinning informativ, normalerweise klicke ich solche Threads gerne mal weg.

    w» Ich habe mir mal was kleines geschrieben. Aber das was ich versuchten wollte, geht nicht mal ansatzweise. (Wird nur im IE 4.x^ genutzt!!!)

    Es bleibt ein Rätsel, warum du Skripte nur und ausschliesslich für den fehlerhaftesten von allen aktuellen Browsern schreibst, zumal du weder die Stärken vom IE nutzt, noch hast du irgendwo etwas spezielles eingebaut was nur der IE kann.

    Wobei ... du natürlich recht hast, mit deinem Programmierstil, ist es vielleicht wirklich am besten für den Fehlertolerantesten Browser zu schreiben

    <body>
    <script language="JavaScript">

    Das language Attribut wird schon lange lange Mißbilligt, aber das type Attribut ist eine Pflichtangabe.

    <!--

    Wieviel Browser benutzt du oder kennst du die nicht das <script..> Tag kennen?
    Nur diese brauchen HTML Kommentare in Skriptblöcken

    document.write("<style>\n"+
                   "a.Menue_Item div {cursor:default;text-decoration:none;}\n"+
                   "a.Menue_Item div div {background-color:white;}\n"+
                   "a.Menue_Item:hover div div {background-color:black;}\n"+
                   "</style>")
    obj = (document.getElementById("SDG_Menue"))?"SDG_2_Menue":"SDG_Menue";document.write("<span id=""+obj+""></span>")

    Du bist immer noch Bytes am sparen? Oder ist deine Entertaste kaputt?
    Warum gruppierst du nicht deine document.write() Ausgaben, sie machen deinen Code unübersichtlich und undurchschaubar (zumindest für aussenstehende)

    function GColor(r,g,b) {
    r = 255-((r>255)?255:(r<0)?0:r)
    g = 255-((g>255)?255:(g<0)?0:g)
    b = 255-((b>255)?255:(b<0)?0:b)
    var rr = (r<16)?"0":"",rb = (b<16)?"0":"",rg = (g<16)?"0":"";
    this.Color = String("#"+rr+r.toString(16)+""+rb+b.toString(16)+""+rg+g.toString(16)).toUpperCase()
    }

    Objektorientierte Programierung ist im Prinzip eine gute Sache, aber warum du für eine einfach Sache ein Objekt verwendest ist ein Rätsel zumal die Funktion nicht sonderlich übersichtlich ist.

    Sowas kann man doch viel besser lesen:

      
    function GColor(r,g,b)  
    {  
      var hex = function(num)  
      {  
         num = 255 - (num > 255 ? 255 :  num < 0  ? 0 : num);  
         num = num.toString(16).toUpperCase();  
         return (num.length == 1 ? '0' : '')+ num;  
      }  
      return "#" + hex(r) + hex(g) + hex(b);  
    }  
    
    

    function Color(r,g,b) {
    var rr = (r<16)?"0":"",rb = (b<16)?"0":"",rg = (g<16)?"0":"";
    r = (r>255)?255:(r<0)?0:r
    g = (g>255)?255:(g<0)?0:g
    b = (b>255)?255:(b<0)?0:b
    // Sorry, wenn die Zeilen zu lang sind

    Ja sind sie ich blick da nicht durch.

    ....

    testfarbe = eval("new Color("+StrG+")")

    Wozu eval?
    Das mach doch das Gleiche:
    var testfarbe = new Color(StrG);

    document.write(testfarbe.LeftOb)
    document.write(testfarbe.Val + "Home"+testfarbe.Val2)
    document.write(testfarbe.RightOb+"<br>")
    testfarbe = eval("new Color("+StrG+")")
    document.write(testfarbe.LeftOb)
    document.write(testfarbe.Val + "Seite 1"+testfarbe.Val2)
    document.write(testfarbe.RightOb+"<br>")
    testfarbe = eval("new Color("+StrG+")")
    document.write(testfarbe.LeftOb)
    document.write(testfarbe.Val + "Seite 2"+testfarbe.Val2)
    document.write(testfarbe.RightOb+"<br>")

    wie gesagt diese ständigen document.write machen deine Skript unübersichtlich und sind auch nicht gut für die Performance (da du ja Zeilenumbrüche sparst, gehe ich mal davon aus die ist dir auch wichtig)

    Sammel die Ausgabe in einen String und gib in am Ende auf einmal aus, das ist übersichtlicher und schneller:

    var output = testfarbe.LeftOb

    • testfarbe.Val + "Home" + testfarbe.Val2
    • testfarbe.RightOb + "<br>"
    • .....
      ;
      document.write(output)

    function Menue() {
      this.a = 0
      this.b = new Object()
      this.b.a = 0
      this.b.b = 2
      this.b.c = 2
    }

    das ist natürlich arg kryptisch, was macht a oder b oder c?
    Evtl. ist hier ein Array sinnvoller, aber auf jeden Fall Variabelnamen, die etwas aussagen über die Funktion.

    Kann mir einer sagen, warum trotz der Style-Angabe die Items nicht verändert werden?

    wie meinst du das?

    Was ist da falsch?

    Du programmierst mit extrem schlechten Stil, es gibt Menschen die können das und die verlieren nicht die Übersicht dabei, ich kann das nicht.
    Wenn du versuchen würdest ein paar Regeln beim Programmieren zu beachten, würdest du die Fehler vielleicht selber finden oder aussenstehende könnten dir helfen, aber so ist es fats unmöglich.

    Struppi.

    1. Einige Dinge möchte ich aber auch noch erklären:

      testfarbe = eval("new Color("+StrG+")")

      Wozu eval?
      Das mach doch das Gleiche:
      var testfarbe = new Color(StrG);

      Eben nicht. Da ich die "3" Werte, die übergeben werden sollten, nicht in 3 Variablen schreiben wollte. Daher in der Variable "1,2,3"
      und via Eval wird daraus nicht new Color("1,2,3") sondern new Color(1,2,3)

      Da sowieso nur Zahlen übergeben werden, ist da kein Problem drin.

      document.write(testfarbe.LeftOb)
      document.write(testfarbe.Val + "Home"+testfarbe.Val2)
      document.write(testfarbe.RightOb+"<br>")
      testfarbe = eval("new Color("+StrG+")")
      document.write(testfarbe.LeftOb)
      document.write(testfarbe.Val + "Seite 1"+testfarbe.Val2)
      document.write(testfarbe.RightOb+"<br>")
      testfarbe = eval("new Color("+StrG+")")
      document.write(testfarbe.LeftOb)
      document.write(testfarbe.Val + "Seite 2"+testfarbe.Val2)
      document.write(testfarbe.RightOb+"<br>")

      wie gesagt diese ständigen document.write machen deine Skript unübersichtlich und sind auch nicht gut für die Performance (da du ja Zeilenumbrüche sparst, gehe ich mal davon aus die ist dir auch wichtig)

      Mir sind Zeilenumbrüche nur bei Funktionen wichtig. Wenn ich dann sofort sehen kann, wo welche Funktion steht. Ich habe ja auch eine Hand voll davon.

      Die Dokument-Writers sind alle einzeln gesetzt, damit ich mir genau anschauen kann, wo vielleicht Fehler auftauchen. Letztendlich habe ich sowieso alles wieder in 1 Zeile via Funktionsaufruf gekürzt.

      Sammel die Ausgabe in einen String und gib in am Ende auf einmal aus, das ist übersichtlicher und schneller:

      ... kk ...

      function Menue() {
        this.a = 0
        this.b = new Object()
        this.b.a = 0
        this.b.b = 2
        this.b.c = 2
      }

      Diese Funktion war überflüssig. Hatte ich nur vergessen zu entfernen.

      Kann mir einer sagen, warum trotz der Style-Angabe die Items nicht verändert werden?

      wie meinst du das?

      Ist schnell gesagt: Ich möchte einen CSS-Hovereffekt via dem Link, in dem jedes Element letztendlich verschachtelt ist, erzielen.

      Wenn du versuchen würdest ein paar Regeln beim Programmieren zu beachten, würdest du die Fehler vielleicht selber finden oder aussenstehende könnten dir helfen, aber so ist es fats unmöglich.

      Kann ich verstehen. Da wiederspreche ich dir nicht.

      Doch ich habs so gelernt. Kann vielleicht daran liegen, da ich keine Hilfe oder sowas hatte, als ich damit anfing. (Hatte nur ein kleines Handbuch von 1995, wo ich auch angefangen habe)

      Ich will aber nicht undankbar erscheinen, da du mir doch einige Fehler aufgedeckt hattest. Ich danke dir für deine Mühe. Ich hab den Code zwar schon lange verbessert (viele Funktionen gibt es garnicht mehr), aber dennoch waren die Fehler von mir unentdeckt. Danke also.

      MFG
      Griever

      1. testfarbe = eval("new Color("+StrG+")")

        Wozu eval?
        Das mach doch das Gleiche:
        var testfarbe = new Color(StrG);

        Eben nicht. Da ich die "3" Werte, die übergeben werden sollten, nicht in 3 Variablen schreiben wollte. Daher in der Variable "1,2,3"
        und via Eval wird daraus nicht new Color("1,2,3") sondern new Color(1,2,3)

        eval würd ich immer vermeiden, es ist keine suabere Lösung und kann (gerade im IE) die Fehlersuche enorm erschweren, zumal es langsam ist.

        wie gesagt diese ständigen document.write machen deine Skript unübersichtlich und sind auch nicht gut für die Performance (da du ja Zeilenumbrüche sparst, gehe ich mal davon aus die ist dir auch wichtig)

        Mir sind Zeilenumbrüche nur bei Funktionen wichtig. Wenn ich dann sofort sehen kann, wo welche Funktion steht. Ich habe ja auch eine Hand voll davon.

        Also ich kann so nichts sehen.

        Kann mir einer sagen, warum trotz der Style-Angabe die Items nicht verändert werden?

        wie meinst du das?

        Ist schnell gesagt: Ich möchte einen CSS-Hovereffekt via dem Link, in dem jedes Element letztendlich verschachtelt ist, erzielen.

        Das ist irgendwie nicht erkennbar, wo ist dort der Versuch einesn hover Effektes?
        Warum kein CSS?

        Kann ich verstehen. Da wiederspreche ich dir nicht.

        Doch ich habs so gelernt. Kann vielleicht daran liegen, da ich keine Hilfe oder sowas hatte, als ich damit anfing. (Hatte nur ein kleines Handbuch von 1995, wo ich auch angefangen habe)

        Nach 11 Jahren programmierst du immer noch wie ein Anfänger (oder wie ein Genie, aber davon ist dein Code weit entfernt)? Erschreckend

        ich hab auch mal so angefangen, aber man merkt doch schnell, wenn man sauber und konsistent programmiert, dass man Fehler leichter findet und auch viele Fehler nicht mehr macht. Nicht umsonst gibt es solche Empfehlungen wie man seinen Programmcode schreibt.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. Re.

          Ich habe den Code nochmal überarbeitet. Ich zeig dir mal, was ich mit Hover meinte:

          <body>
          <script language="JavaScript">
          <!--
          // SDG-Menü
          // Created by Ggriever
          // http://www.usesoft.de/ggriever
          // Run under IE 4.x^ !
          var breite = 300    // Breite der Menütiems in Pixel (In der Anzeige +2!!!)
          var hoehe = 20    // Höhe der Menütiems in Pixel
          var Standard_Color = "235,221,231" // Standardfarbe in R,B,G (Dezimal!)
          var padding_left_hover = 15  // Textabstand links bei Focus oder Mouseover
          var borderFarbe = "#9FC6FF"  // Farbe des Menürahmens, wenn das Menü genutzt wird
          var borderFarbeNone = "#EAF2FF"  // Farbe des Menürahmens, wenn das Menü genutzt wird
          var aktivierungsintervall = 2000  // Zeitspanne, bis man wieder aus dem Menü geht. In Millisekunden

          // Ein Haufen Variablen
          // Interne Variablen setzen
          var standard_Status = "",session_ID = 0,testfarbe,nowpos,aktuellePos = 0,wex=0,wey=0,retimer = "",onof = false,M="",verlauf = new Object();verlauf.r;verlauf.b;verlauf.g;verlauf.aktiv=false;verlauf.sr;verlauf.sg;verlauf.sb;verlauf.reststeps=0;

          // Hier sind die Style-Angaben. Habe das, was ich meinte erstmal rauskommentiert
          // Stylesheed-Angaben setzen
          document.write("<style>\na.Menue_Item div {cursor:default;text-decoration:none;}\na.Menue_Item div div {background-color:white;}\n/*a.Menue_Item:hover div div {background-color:black;}*/\n</style>")

          // Funktionen ...
          //... Weggelassen ...
          //(Die werden normalerweise schön untereinander angezeigt. "function" unter "function")
          // Da such ich mir halt die entsprechende Funktion raus, die ich haben möchte.

          // events setzen ...
          // werden zwar nicht gehen, aber trotzdem.
          document.body.onload = init
          document.body.onmousewheel = alertfunc
          document.body.oncontextmenu = returnit
          document.body.onmousemove= mouseMover

          // Menü starten
          startMenue()

          // Verlauf starten (Farbaufruf mit "VerlaufNext()")
            Verlauf(24,156,74,23,52,52,4)

          // Item's einfügen
            createItem("Grievers Homepage",VerlaufNext(),"http://www.usesoft.de/ggriever/index.php")
            createItem("Grievers Galerie",VerlaufNext(),"http://www.usesoft.de/ggriever/page_07.php?part=Wallpapers")
            createItem("Grievers Chat",VerlaufNext(),"http://griever.mainchat.de/")
            createItem("Grievers Gästebuch",VerlaufNext(),"http://www.gbooky.de/gbooky/gbooky.php?username=Griever&userID=1996")
          // Menü beenden
          endMenue()

          -->
          </script>
          <table style="width:750px;">
          <tr>
          <td>
          <script language="JavaScript">
          <!--
          initMenue()
          -->
          </script>
          </body>

          Hier mal eine Zeile eines Objektes:
          Ist leider viel mehr, als gedacht ...

          <a href="http://www.usesoft.de/ggriever/index.php" class="Menue_Item" style="border:0px;">
            <div onMouseOver="changeIDTO(0);window.Status = standard_Status" style="display:inline;overflow:hidden;height:20px;width:10px;cursor:default;border:1px solid #174482;background-color:#174482;">
            <div onMouseOver="changeIDTO(0);window.Status = standard_Status" style="height:100%;background:#E8BB7D;overflow:hidden;cursor:default;display:inline;width:4px;">&nbsp;</div></div>
             <div id="OP_024_session_ID_0" onMouseOver="changeIDTO(0);window.Status = standard_Status" style="color:#E8BB7D;text-vertical-align:top;display:inline;overflow:hidden;height:20px;width:280px;cursor:default;border:1px solid #174482;background-color:#174482;">Grievers Homepage</div><div onMouseOver="changeIDTO(0);window.Status = standard_Status" style="text-align:right;display:inline;overflow:hidden;height:20px;width:10px;background:[object Object];border:1px solid #174482;cursor:default;background-color:#174482;"><div onMouseOver="changeIDTO(0);window.Status = standard_Status" style="height:100%;background:#E8BB7D;overflow:hidden;cursor:default;display:inline;width:4px;">&nbsp;</div></div></a>

          Das mit dem vergessenem type="text/javascript" ist, weil mein Phase 5 sonst keine Javascript-Syntaxhervorhebung unternimmt.

          1. Hier mal eine Zeile eines Objektes:
            Ist leider viel mehr, als gedacht ...

            Wie gesagt es ist nicht besonders klug CSS Code in HTML oder gar JS zu schreiben, lieber das ganze dynamisch ändern, dann würdest du auch den Fehler finden. so brauch man gute Augen, die hab ich nicht.

            Das mit dem vergessenem type="text/javascript" ist, weil mein Phase 5 sonst keine Javascript-Syntaxhervorhebung unternimmt.

            Das stimmt nicht, ich benutze Proton (den standalone Editor von Phase 5) und dort läßt sich das einstellen und soweit ich weiß geht das mit Phase 5 sogar noch einfacher (ich musste die Syntaxschema entsprechend bearbeiten).

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. Rehu

              Es ist aber der Phase 5 Editor, der auf einem Externen laufwerk liegt. Da habe ich das Problem, dass mir zum ändern der Dateien die Rechte fehlen. (Netzwerkschutz) Erstens komme ich sowieso nicht auf den Ordner und zweitens ist es bei uns verboten!, dinge an Programmen zu ändern.

              Hier ein Screenshot:

              Wie du schön siehst: Oben ohne, wegen type ...
              und Unten mit, wegen language ...

              Aber wenn es so verlangt wird, kann ich es ja "danach" zu type... umändern. (gibt ja suchen und ersetzen.)

              MFG
              Griever

              1. Es ist aber der Phase 5 Editor, der auf einem Externen laufwerk liegt. Da habe ich das Problem, dass mir zum ändern der Dateien die Rechte fehlen. (Netzwerkschutz) Erstens komme ich sowieso nicht auf den Ordner und zweitens ist es bei uns verboten!, dinge an Programmen zu ändern.

                Dann wirst du es nicht anpassen können, vermute ich.

                Hier ein Screenshot:

                ...

                Wie du schön siehst: Oben ohne, wegen type ...
                und Unten mit, wegen language ...

                Wenn ich diese sinnlosen HTML Kommentare in den Scriptblock tu, dann wird bei mir auch nichts gehighlighted.

                Aber wenn es so verlangt wird, kann ich es ja "danach" zu type... umändern. (gibt ja suchen und ersetzen.)

                Was heißt verlangt, willst du hier Leuten die vielleicht gerade anfangen, ständig das falsche erzählen?

                Struppi.

                --
                Javascript ist toll (Perl auch!)
  3. Ich hab mir mal die Mühe gemacht, den Code genauer anzuschauen.
    Und festgestellt, dein HMTL Code ist extrem Fragwürdig.

    this.LeftOb = "<a href="#" class="Menue_Item" style="border:0px;"><div style="margin-top:1px;display:inline;overflow:hidden;height:"+hoehe+"px;width:10px;cursor:default;border:1px solid "+this.Color+";background-color:"+this.Color+";"><div style="height:100%;overflow:hidden;cursor:default;display:inline;width:4px;">&nbsp;</div></div>"

    Du solltest dich dringenst mit CSS beschäftigen. diese Angaben sind wahrscheinlich unnötig, bzw. kann das sicher wesentlich eleganter gelöst werden. Zumal diese Verschachtelung von HTML Elementen nicht erlaubt ist auch wen du versuchst mit display:inline das zu umgehen.

    Wie auch immer, es ist nicht ratsam CSS mit dem du Elemente formatierst, mit JS zu erzeugen. Trenne CSS und JS, dann wird es viel einfacher das Design anzupassen. (und es läßt sich leichter verstehen, was du mit diesen Angaben eigentlich vorhast)

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  4. Hi,

    "a.Menue_Item div {cursor:default;text-decoration:none;}\n"+

    Da a-Elemente keine div-Elemente enthalten dürfen, ist der Selektor unsinnig.

    style="margin-top:1px;display:inline;overflow:hidden;height:"+hoehe+"px;width:10px;cursor:default;border:1px solid

    display:inline und height bzw. width schließen sich gegenseitig aus.

    Link funktioniert. Doch Hover und so nicht.

    Da Deine Selektoren ja nichts auswählen können ...

    Abgesehen davon: für :hover gilt beim IE: wenn sich keine der Eigenschaften für a ändert, ändert der IE auch keine der Eigenschaften für innere Elemente.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.