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.