Style auslesen.

Orakel

Erfahrenes Mitglied
Hallo Zusammen.

Und schon wieder hab ich ein Problem. Folgendes Szenario:

1) In einem Stylesheet steht:
Code:
body  { margin:0px; padding:0px; background-color:#FFAAAA;
        font-family:Verdana, Arial, Helvetica;
        font-size:7pt; color:#000000; border-width:0px; }

2) Per Javascript will ich nun die Styles für z. B. obigen body Tag auslesen. Dies geschieht wie folgt (Der Tag hat die ID "main_1"):
Code:
function InitFields()
{
  with( document.beispiel )
  {
    back_background.value  = GetStyle( "main_1", "backgroundColor" );
    back_foreground.value  = GetStyle( "main_1", "color" );
    back_bordercolor.value = GetStyle( "main_1", "borderColor" );
    back_borderstyle.value = GetStyle( "main_1", "borderStyle" );
    back_borderwidth.value = GetStyle( "main_1", "borderWidth" );
    back_font.value        = GetStyle( "main_1", "fontFamily" );
  }

function GetStyle(szElementID, szStyle)
{
  var szValue;

  if( document.getElementById )
  {
    var oElement = document.getElementById( szElementID );
    szValue = oElement.style[szStyle];

    if( !szValue )
    {
      if( oElement.currentStyle )
        szValue = oElement.currentStyle[szStyle];
      else if( document.defaultView )
        szValue = document.defaultView.getComputedStyle( oElement, null ).getPropertyValue( szStyle );
    }
  }
  szValue = ( !szValue ) ? "not readable" : szValue;
  return szValue;
}

IE macht mal wieder keine Probleme, aber Netscape liefert nur werte für den Style "color". Das borderStyle oder borderColor oder evtl. nix zurückliefern könnte ich mir ja noch erklären, da diese im CSS nicht angegeben sind.

Kann mir jemand sagen, warum

Gruß
Das Orakel
 
Zuletzt bearbeitet:
Hi Sven,

danke für die Antwort. Dein Tip umgesetzt funktioniert das ganze aber nur zum Teil. Die Styles border-width oder border-style lassen sich immer noch nicht darstellen. Obwohl ich die jetzt mal in meinem Stylesheet definiert habe.

Hab jetzt zwar auch noch mal im Netz recherchiert, bin aber nur auf ähnliche Beispiele gestossen, wie ich Sie in meinem obigen Posting dargestellt habe.

Hast Du evtl. noch ne andere Möglichkeit um auf die Styles zugreifen zu können?

Gruß
Ein fragendes und evtl. nervendes ;) Orakel
 
Hi,

border-width oder border-style sind noch zu allgemein. Du musst gezielt die Eigenschaft
ansprechen, die ausgelesen werden soll, z.B. border-top-width oder border-right-style.

Hier kannst du noch einiges dazu lesen und einen JS-Array mit den wichtigsten
CSS-Eigenschaften downloaden/ansehen.

Ciao
Quaese
 
Hi Quaese

ich kann nur Danke sagen. Mit dem Hinweis funktioniert es genauso wie ich es benötige.

Gruß
Das Orakel
 

Neue Beiträge

Zurück