wieso ist das undefiniert
Norbert
- javascript
Hallo,
zuerst der Code:
function blink(idx) {
OB = document.getElementById(idx);
f1 = OB.style.color;
alert(idx + '\t[' + f1 + ']');
f2 = OB.style.background-color;
alert(idx + '\t[' + f2 + ']');
}
und dann das Problem:
Die erste Alert-Box zeigt mir die Schriftfarbe an.
Doch statt der zweiten Alert-Box kommt die Fehlermeldung:
"'color' ist undefiniert!"
Aber die Farbe wird im Element ordentlich angezeigt.
Ach-ja, IE und FF sind sich komischerweise einig.
Hat da jemand eine Idee dazu ?
Gruss und Dank
Norbert
Tach,
function blink(idx) {
OB = document.getElementById(idx);
f1 = OB.style.color;
alert(idx + '\t[' + f1 + ']');
f2 = OB.style.background-color;
alert(idx + '\t[' + f2 + ']');
}
> und dann das Problem:
> Die erste Alert-Box zeigt mir die Schriftfarbe an.
> Doch statt der zweiten Alert-Box kommt die Fehlermeldung:
> "'color' ist undefiniert!"
du hast color ja auch nirgendwo definiert, es wäre aber auch nicht wirklich sinnvoll irgendetwas von einer background-Eigenschaft zu subtrahieren. Die Lösung deines Problems steht in <http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften>.
mfg
Woodfighter
Hallo,
Die Lösung deines Problems steht in http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften.
nee,
IE ignoriert diese Eigenschaft ohne Fehlermeldung.
FF meint dazu:
Unbekannte Eigenschaft 'backgroundColor', Deklaration ignoriert.
Irgendwie kommt man sich verar...t vor, weiss nur nicht von wem ... :-((
Gruss und Dank
Norbert
Hi,
FF meint dazu:
Unbekannte Eigenschaft 'backgroundColor', Deklaration ignoriert.
das meldet er, wenn Du diesen Namen im CSS-Code angibst. CSS hat mit JavaScript aber nichts zu tun.
Irgendwie kommt man sich verar...t vor, weiss nur nicht von wem ... :-((
Im Moment veranulierst Du Dich nur selbst. CSS ist CSS, JavaScript ist JavaScript.
Cheatah
Hallo Cheatah,
Irgendwie kommt man sich verar...t vor, weiss nur nicht von wem ... :-((
Im Moment veranulierst Du Dich nur selbst. CSS ist CSS, JavaScript ist JavaScript.
ich weiss,
die Erde ist eine Scheibe - die CSS-Typen wohnen auf der Unterseite und
denken sich Namen aus, die die auf der Oberseite nicht verwenden duerfen.
Das ist sowas von HIRNFREI, da kommt man ohne fremde Hilfe nicht drauf ... :(
Gruss und Dank
Norbert
Hi there,
Das ist sowas von HIRNFREI,
ist es nicht, es mag Dir unlogisch erscheinen, ist aber nicht aus Bosheit so, sondern dem Umstand zu verdanken daß das minus-Zeichen in Javascript-Bezeichnern nicht zulässig ist.
da kommt man ohne fremde Hilfe nicht drauf ... :(
zumindest schadet es nicht. Wer lesen kann ist aber klar im Vorteil...
Hi,
die Erde ist eine Scheibe - die CSS-Typen wohnen auf der Unterseite und
denken sich Namen aus, die die auf der Oberseite nicht verwenden duerfen.
wenn Du meinst, dass sich die Macher von CSS nicht nach Namenskonventionen irgendwelcher anderen Techniken gerichtet haben, hast Du (bedingt) Recht - das wäre auch eine hehre Aufgabe, bei der Menge existierender Techniken.
Das ist sowas von HIRNFREI,
Dann erklär doch mal, welches andere Verfahren weniger "hirnfrei" wäre.
da kommt man ohne fremde Hilfe nicht drauf ... :(
Doch, kommt man, denn Referenzen und Spezifikationen sind nicht "fremd". Dass das Minuszeichen in JavaScript ein Operator ist, kann man bereits mit geringen Kenntnissen erfassen; der Schritt zur Erkenntnis, dass das Minus in Bezeichnern somit nicht vorkommen kann, ist nicht weit. Somit informiert man sich eben schnell darüber, wie die Fremdtechnologie CSS in die Fremdtechnologie DOM integriert wurde, welche man in JavaScript nutzt - et voilà.
Cheatah
Hallo Cheatah,
Das ist sowas von HIRNFREI,
Dann erklär doch mal, welches andere Verfahren weniger "hirnfrei" wäre.
normalerweise erwartet man, dass sich spaeter Kommende an vorhandene Gegebenheiten
anpassen und nicht versuchen den Sall neu umzuraeumen. Dafuer haette es in jedem
Dorfkrug auch bannig was auf Fresse gegeben ... ;-)
Fuer den Hintergrund hat Gott in HTML "bgcolor" eingerichtet und es ist IMHO schon
boshaft, dafuer ueberhaupt einen anderen Namen zu verwenden. Stell Dir mal vor,
jeder Zustelldienst verwendet seine eigenen Strassennamen, da wuerden sich auch
alle aufregen ...
Gruss Norbert
Hello out there!
Fuer den Hintergrund hat Gott in HTML "bgcolor" eingerichtet
(Vergib ihm, er weiß nicht, was er spricht.)
Sämtliche HTML-Elemente und -Attribute zur Vermittlung von Darstellung sind Werk des Teufels.
(In Gestalt einer Schlange verführte er Webseitenschreiberlinge dazu, die Früchte des Baumes der Browserfeatures zu kosten, was zur Vertreibung aus dem World Wide Paradise führte.)
Gott (Dreifaltigkeit: Dave Raggett, Arnaud Le Hors, Ian Jacobs [HTML401]) schuf die Strict-Variante und hat damit den Teufel wieder ausgetrieben.
See ya up the road,
Gunnar
Hai Gunnar,
(Vergib ihm, er weiß nicht, was er spricht.)
lol,
Design ist Teufelswerk, dafuer wurden schon frueher Leute zu Recht verbrannt.
Und das ist gerade im Web nicht anders.
Was im Textformat nicht "rueber kommt", wird mit Styling auch nicht besser.
Gruss Norbert
Design ist Teufelswerk, dafuer wurden schon frueher Leute zu Recht verbrannt.
Und das ist gerade im Web nicht anders.
Was im Textformat nicht "rueber kommt", wird mit Styling auch nicht besser.
Was immer das in dem zusammenhang heißen mag. Es geht lediglich un die Trennung von Inhalt und Darstellung, du bestehst darauf das das nicht getrennt wird und tust hier so, als ob das irgendwie verpöhnt ist, aber dieses Konzept ist weit verbreitet und hat sich bewährt.
Struppi.
Hai,
Was im Textformat nicht "rueber kommt", wird mit Styling auch nicht besser.
Was immer das in dem zusammenhang heißen mag.
echt,
aber das Lesen klappt schon, gelle ...
Dann lass mal, vielleicht kommt es ja bei Dir etwas spaeter.
Frage bitte nicht was kommen soll, sonst versuche ich es Dir zu erklaeren.
Es geht lediglich un die Trennung von Inhalt und Darstellung,
oops,
das ist Unfug, darum ist es auch noch nie gegangen.
du bestehst darauf ...
falsch,
ich halte es nur fuer absolut HIRNFREI die gleiche Eigenschaft mit DREI
verschiedenen Namen zu belegen. Dafuer besteht weder logisch oder technisch
eine Notwendigkeit. Dergleichen kann nur der Boese persoenlich anzetteln!
Er sucht sich einen vom ADS-Syndrom zerfressenen IT-ler und schon haben wir
den Salat. Davon muss es viele geben, sonst haette sich der Schwachfug nicht
verbreitet.
Gruss Norbert
du bestehst darauf ...
falsch,
ich halte es nur fuer absolut HIRNFREI die gleiche Eigenschaft mit DREI
verschiedenen Namen zu belegen. Dafuer besteht weder logisch oder technisch
eine Notwendigkeit.
Das behauptest du.
Mal abgesehen davon, dass jede dieser Eigenschaft aus einer anderen Zeit stammt, gibt es natürlich technische Notwendigkeit eine Eigenschaft die in CSS name-name heißt in JS eben nameName zu benennen.
Die Ursache liegt in der unterschiedlichen Zeit da diese Eigenschaften definiert wurde, durchaus mit "Hirn". Die HTML Variante ist eine im Zuge der damaligen Entwicklungen über's Knie gebrochene Sache, Netscape wollte damals Vorreiter sein - hier kann man also von Hirnfrei sprechen. Die CSS Bezeichnungen sind durchaus durchdacht und sinnvoll, dass die Namensgebung beim Zugriff mit JS Probleme bereitet, war vermutlich nicht absehbar, das zu dem damaligen Zeitpunkt kaum ein Browser den Zugriff beherrschte.
Er sucht sich einen vom ADS-Syndrom zerfressenen IT-ler und schon haben wir
den Salat. Davon muss es viele geben, sonst haette sich der Schwachfug nicht
verbreitet.
Ich finde es seltsam dass du dich über so etwas dermaßen echauffierst. Es gibt viele Dinge im alltäglichen Leben die in unterschiedlichem Kontexten unterschiedliche Bezeichnungen haben. Angefangen von Entfernungsangaben über Gewichtsangaben, ja selbst die komplette Sprache ist in manchen Regionen dieser Welt eine andere als bei uns - wie hirnfrei. Es ist also eher erstaunlich, dass überhaupt soviele Übereinstimmungen existieren.
Struppi.
Es gibt viele Dinge im alltäglichen Leben die in unterschiedlichem
Kontexten unterschiedliche Bezeichnungen haben.
sicher,
selbige sind ueber historisch lange Zeit und absolut unabhaengig
voneinander entstanden.
DOM existiert eventuell eine historische Millisekunde und hat
das Internet als Entwicklungsgrundlage zur Verfuegung, trotzdem
kommt etwas dabei heraus, mit dem man durch jede IHK-Pruefung
fallen wuerde.
Aber Du hast Recht, dieser Thread ist absolut nutzlos,
also lassen wir es sein.
Frohes Fest und guten Rutsch
Norbert
Es gibt viele Dinge im alltäglichen Leben die in unterschiedlichem
Kontexten unterschiedliche Bezeichnungen haben.
sicher,
selbige sind ueber historisch lange Zeit und absolut unabhaengig
voneinander entstanden.
Immer? Ich hab ein paar Beispiele genannt um dir klar zu machen das das völlig normal ist. Es gibt sicher auch andere Sachen, die nicht konsistent benannt wurden. Die Namensgebung dere Funktionen von PHP ist so ein Beispiel, das wirklich hirnfrei ist.
DOM existiert eventuell eine historische Millisekunde und hat
das Internet als Entwicklungsgrundlage zur Verfuegung, trotzdem
kommt etwas dabei heraus, mit dem man durch jede IHK-Pruefung
fallen wuerde.
Das ist deine These.
Was du mit das Internet zur Verfügung meinst, weiß ich nicht. 1998 war da noch nicht viel. Aber falls du damit meinst, dass es damals viele konkurrierende Unternehmen gab, die oft versucht haben ihre Ideen durchzusetzen, um den Konkurrenten zu schwächen, was du zu vielen Quasi-standards und techn. Totgeburten führte, dann hast du recht
Aber die Entwickler des DOMs können überhaupt nichts für das, worüber du dich aufregst, das wurde dir ja schon mehrmals erzählt, warum die das so machen mussten. Weder das Minuszeichen im Namen werden die sich ausgedacht haben, noch das unseelige bgColor Attribut, da dies lange davor existierte.
Aber Du hast Recht, dieser Thread ist absolut nutzlos,
also lassen wir es sein.
Hab ich nie gesagt. Ich wunder mich nur über dein Urteil ohne dass du dabei irgendwelche Hintergründe zu kennen scheinst.
Struppi.
Hallo,
DOM existiert eventuell eine historische Millisekunde und hat
das Internet als Entwicklungsgrundlage zur Verfuegung, trotzdem
kommt etwas dabei heraus, mit dem man durch jede IHK-Pruefung
fallen wuerde.
Was ist jetzt deine Kritik am DOM?
Mathias
Hallo,
ich halte es nur fuer absolut HIRNFREI die gleiche Eigenschaft mit DREI
verschiedenen Namen zu belegen. Dafuer besteht weder logisch oder technisch
eine Notwendigkeit.
Zu .style.eigenschaftsName:
Das DOM ist allgemein und sprachenneutral, es bildet in seinen Bezeichnern den kleinsten gemeinsamen Nenner der Bezeichnerkonventionen unzähliger Programmiersprachen ab (nämlich [a-zA-Z]). Wenn das DOM also Schnittstellen zu anderen Sprachen/Techniken definiert, muss sie deren Bezeichner »übersetzen«. Sie kann sie nicht einfach übernehmen, da sie diese sonst auch vielen anderen Sprachen vorschreiben würde, was einfach unmöglich ist.
Das DOM CSS bietet die Eigenschaften .style.eigenschaftsName lediglich als optionalen, einfachen Schnellzugriff (»convenience mechanism«) an. Im ECMAScript-Binding kommt dann eben eigenschaftsName heraus.
Dahinter stehen die die Implementations-unabhängige Methoden getPropertyValue und setProperty, die den vollen CSS-Eigenschaftsnamen entgegennehmen; die Kurzschreibweisen sind Abbildungen auf diese Methoden.
Mathias
Hi,
f2 = OB.style.background-color;
Doch statt der zweiten Alert-Box kommt die Fehlermeldung:
"'color' ist undefiniert!"
Du versuchst, die Variable 'color' von 'OB.style.background' abzuziehen. Magst Du nicht noch mal in http://de.selfhtml.org/javascript/objekte/style.htm nachlesen?
Ach-ja, IE und FF sind sich komischerweise einig.
Naja, bei einem einfachen Minuszeichen kann man nicht so viel falsch machen ...
Cheatah
Hallo Norbert,
f2 = OB.style.background-color;
Doch statt der zweiten Alert-Box kommt die Fehlermeldung:
"'color' ist undefiniert!"
natürlich - du willst die Differenz von OB.style.background und color bilden. Okay, zumindest will das dein Programmcode. ;-)
Du solltest noch einmal nachlesen, wie aus dem Namen der CSS-Eigenschaft die entsprechende Eigenschaft des JS-style-Objekts gebildet wird. Dass es mit deiner Schreibweise nicht funktionieren kann, sollte dir einleuchten, wenn du über die Syntax der Anweisung nachdenkst.
So long,
Martin
Hallo Norbert,
function blink(idx) {
OB = document.getElementById(idx);
f1 = OB.style.color;
alert(idx + '\t[' + f1 + ']');
f2 = OB.style.background-color;
alert(idx + '\t[' + f2 + ']');
}
> Doch statt der zweiten Alert-Box kommt die Fehlermeldung:
> "'color' ist undefiniert!"
>
> Hat da jemand eine Idee dazu ?
Das liegt daran, dass Du eine CSS-Angabe in Jvascript verwenden willst. Javascript versteht diese \_so\_ aber nicht.Eine Übersich über die JS-Schreibweisen erhälst Du [hier](http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften).
Mit freundlichen Grüßen,
Steffen Bruchmann
--
Mein Selfcode: ie:{ fl:( br:> va:) ls:& fo:| rl:( n4:& ss:| de:> js:| ch:{ mo:} zu:}