Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Februar

SELFHTML Forumsarchiv
Wie Attributzahl bei style ermitteln?

Informationsseite
  1. Seite (JAVASCRIPT) Wie Attributzahl bei style ermitteln? von Olaf, 28. 02. 2006, 11:43
nach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Olaf, 28. 02. 2006, 11:43

Hallo,

ich bekomme per script einige HTML Elemente übergeben, beispielsweise ein <div id=catalog-1...>...</div>

catalog-1 ist mit style="border.....etc.." formatiert, wobei ich nicht weiß, wieviele Attribute in "style" definiert sind.

Genau das würde ich jetzt gerne per Javascript überprüfen. "getAttribute" sieht dafür ganz brauchbar aus, aber damit
kann ich immer nur einen ganz bestimmten Wert abfragen, den ich vorher kennen muss, also beispielsweise getAttribute("fontSize",true);

Jetzt möchte ich natürlich nicht 500 Abfragen fahren, wenn das <div> vielleicht nur zwei Style-Attribute hat. Kann ich die Länge
der Atrribute, die in style="..." definiert sind, nicht für <div> abfragen und dann per Schleife durchgehen?

Hab leider nichts Passendes gefunden.

Danke für Eure Hilfe

Gruß

Olaf
  

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: frankx, 28. 02. 2006, 11:49

Hellihello

getAttribute("fontSize",true);

fontSize ist das Attribut? Ich hätte jetzt gedachtes wäre  "style" oder "class".


frankx

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Cybaer, 28. 02. 2006, 12:20

Hi,

»» getAttribute("fontSize",true);
»» fontSize ist das Attribut? Ich hätte jetzt gedachtes wäre  "style" oder "class".

Der IE kennt getAttribute() auch beim style-Objekt!

Umgekehrt kann der IE (leider) oft nicht via getAttribute() auf Attributwerte zugreifen, wenn dieses Attribut gleichzeitig als eigenes Objekt verfügbar ist (dies ist bei STYLE/style ja der Fall). Der Mozilla beispielsweise macht das richtig, und man kann hier mit getAttribute() den Inhalt es STYLE-Attributes auslesen, mit split() am ";" aufteilen und hat so den realen Inhalt sauber erfaßt inkl. der Anzahl.

Da der IE aber hier eben Probeme macht, kann man real nur, s. Struppi, stur alles durchgehen - und das wegschmeißen, was nicht erwünscht ist. Aber: Hier steht halt nicht(!) das, was real in HTML als Attributwert hinterlegt ist! D.h., bei style:="border: 1px solid blue;" findet man eben u.a. ein "blue" bei borderColor, borderTopColor, ..., sowie auch Defaultwerte wie "0" bei "zIndex".


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Thomas Meinike, 28. 02. 2006, 12:33

Hallo,

»» Der Mozilla beispielsweise macht das richtig, und man kann hier mit getAttribute() den Inhalt es STYLE-Attributes auslesen, mit split() am ";" aufteilen und hat so den realen Inhalt sauber erfaßt inkl. der Anzahl.

Dafuer bietet sich object.style.cssText an, was auch der IE kennt (zumindest ab 5.5).

MfG, Thomas

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Struppi, 28. 02. 2006, 12:40

»» Dafuer bietet sich object.style.cssText an, was auch der IE kennt (zumindest ab 5.5).

Nur als Ergänzung: Den hatte ich auch gesehen - IE 4

Struppi.
--
Javascript ist toll

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Olaf, 28. 02. 2006, 12:57

Vielen Dank Euch allen

Das hilft mir sehr weiter

Gruss

Olaf

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Cybaer, 28. 02. 2006, 12:54

Hi,

»» Dafuer bietet sich object.style.cssText an, was auch der IE kennt (zumindest ab 5.5).

Jep, genauer: alle "modernen" Browser bis auf Opera (bzw. dem Konqueror, der hier ggf. verbuggt ist) können das.


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Cybaer, 28. 02. 2006, 12:56

Hi,

»» Jep, genauer: alle "modernen" Browser bis auf Opera (bzw. dem Konqueror, der hier ggf. verbuggt ist) können das.

BTW: Oder kann der Opera das vielleicht auch, obwohl er das styleSheets-Objekt nicht kennt? IMHO unwahrscheinlich, wäre aber natürlich theoretisch möglich.


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: frankx, 28. 02. 2006, 16:25

Hellihello,

»» Umgekehrt kann der IE (leider) oft nicht via getAttribute() auf Attributwerte zugreifen, wenn dieses Attribut gleichzeitig als eigenes Objekt verfügbar ist (dies ist bei STYLE/style ja der Fall).

Gibts denn dafür keine js-klassen wie sarissa für JS/XML oder kann es die logischerweise nicht geben?

frankx

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Cybaer, 01. 03. 2006, 09:07

Hi,

»» Gibts denn dafür keine js-klassen wie sarissa für JS/XML

Wie meinst Du das? Eine Library, die den STYLE-(Attribut-)Wert browserübergreifend ermittelt?


»» oder kann es die logischerweise nicht geben?

Wenn ja: Nein, das kann es nicht geben. Der IE handelt hier nicht standardkonform, weil er bestimmte Attribute halt falsch behandelt. Und da er keinen Zugriff via getAtribute auf den Attributwert hat, geht es halt nicht - kann man nichts machen.

Alle Möglichkeiten, Eigenschaften stupide durchgehen, cssText abfragen oder auch mit outerHTML den HTML-Code holen und dann das STYLE-Attribut auf diese Art auswerten. liefern nicht das zurück, was real eingetragen wurde. Das Ergebnis ist immer die Interpretation vom IE.


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Struppi, 28. 02. 2006, 11:50

»» ich bekomme per script einige HTML Elemente übergeben, beispielsweise ein <div id=catalog-1...>...</div>
»»
»» catalog-1 ist mit style="border.....etc.." formatiert, wobei ich nicht weiß, wieviele Attribute in "style" definiert sind.
»»
»» Genau das würde ich jetzt gerne per Javascript überprüfen. "getAttribute" sieht dafür ganz brauchbar aus, aber damit

Es reicht durchaus [obj].style.attribut;

»» Jetzt möchte ich natürlich nicht 500 Abfragen fahren, wenn das <div> vielleicht nur zwei Style-Attribute hat. Kann ich die Länge
»» der Atrribute, die in style="..." definiert sind, nicht für <div> abfragen und dann per Schleife durchgehen?

Ja, aber du kannst auh alle Eigenschften von style abfragen:

var o = document.getElementById('test');
for(var i in o.style) s += i + '=' + o.style[i] + '\n';
alert(s);

Struppi.
--
Javascript ist toll

nach obennach unten

Wie Attributzahl bei style ermitteln?

Die folgende Nachricht zum Thema stammt von: Cybaer, 28. 02. 2006, 12:25

Hi,

»» var o = document.getElementById('test');

s muß auch noch definiert werden:

 var o = document.getElementById('test'), s;


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Februar

© 1998-2006 Seite Impressum, Software: Classic Forum