Ergebnis 1 bis 7 von 7
  1. #1
    flobo79 ist offline Grünschnabel
    registriert
    30-04-2007
    Beiträge
    2

    Problem mit appenden von CSS link zum DOM

    hat jemand schonmal mit dem appenden von CSS Links am DOM zu tun gehabt? Es klappt soweit prima indem ich das Element direkt im Dom generiere:

    this.component_css=document.createElement("link");
    this.component_css.setAttribute('rel', 'stylesheet');
    this.component_css.setAttribute('title', 'compcss'); this.component_css.setAttribute('href','/styles.css');
    this.component_css.setAttribute('type', 'text/css');
    $('head').appendChild(this.component_css); // using prototype.js

    ich habe dem head eine id verpasst und greife darauf mit prototypes $() zu. Klappt auch. So jetzt zum Problem, die CSS Rules werden richtig geladen und angewendet, allerdings lassen sie sich nicht mit:
    document.styleSheets[0].cssRules[0]
    zugreifen wie es mit den statisch geladenen CSS files der Fall ist. Das ist leider sehr dumm, da ich in meiner Anwendung auf die dynamisch geladenen CSS Styles zugreifen muss.

    Hat jemand dafür eine Idee?

  2. #2
    daWonderer ist offline Routinier
    registriert
    21-04-2007
    Beiträge
    409

    AW: Problem mit appenden von CSS link zum DOM

    Hallo!

    Zitat Zitat von flobo79 Beitrag anzeigen
    hat jemand schonmal mit dem appenden von CSS Links am DOM zu tun gehabt? Es klappt soweit prima indem ich das Element direkt im Dom generiere:

    this.component_css=document.createElement("link");
    this.component_css.setAttribute('rel', 'stylesheet');
    this.component_css.setAttribute('title', 'compcss'); this.component_css.setAttribute('href','/styles.css');
    this.component_css.setAttribute('type', 'text/css');
    $('head').appendChild(this.component_css); // using prototype.js

    ich habe dem head eine id verpasst und greife darauf mit prototypes $() zu. Klappt auch. So jetzt zum Problem, die CSS Rules werden richtig geladen und angewendet, allerdings lassen sie sich nicht mit:
    document.styleSheets[0].cssRules[0]
    zugreifen wie es mit den statisch geladenen CSS files der Fall ist.
    Hat jemand dafür eine Idee?
    Ich habe das jetzt noch nicht ausprobiert, aber ich habe mal nachgeschaut und denke du kannst über die Elemente, welchen die CSS-Klasse zugewiesen ist, auf die Styles zugreifen. siehe: .setAttribute()

    Code:
    document.getElementById("Absatz").style[eigenschaft] = "wert";
    Btw. die Methode setAttribute ist nur im IE verfügbar, evtl. möchtest du mit createAttribute und nodeValue arbeiten, um andere Browser nicht auszuschließen.

    MfG, Ralf...

  3. #3
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Problem mit appenden von CSS link zum DOM

    Zitat Zitat von flobo79 Beitrag anzeigen
    So jetzt zum Problem, die CSS Rules werden richtig geladen und angewendet, allerdings lassen sie sich nicht mit:
    document.styleSheets[0].cssRules[0]
    Kann es sein, dass diese nicht unter styleSheets[0] zu finden sind?
    Was zeigt styleSheets.length an?

  4. #4
    cybaer ist offline Kaiser
    registriert
    12-09-2006
    Beiträge
    1.338

    AW: Problem mit appenden von CSS link zum DOM

    Zitat Zitat von flobo79 Beitrag anzeigen
    ich habe dem head eine id verpasst und greife darauf mit prototypes $() zu. Klappt auch.
    Ist aber überflüssig: getElementsByTagName("head")[0]

    document.styleSheets[0].cssRules[0]
    zugreifen wie es mit den statisch geladenen CSS files der Fall ist.
    Kann ich nicht nachvollziehen.

    Bedenke aber, daß zw. dem Einhängen und dem Bilden der styleSheets-Collection ein wenig Zeit vergeht! Also direkt danach abrufen ist nicht!

    BTW: Du weißt, daß der IE nicht cssRules sondern rules verwendet?

    Zitat Zitat von daWonderer Beitrag anzeigen
    Btw. die Methode setAttribute ist nur im IE verfügbar,
    Mitnichten. Das ist Standard.
    Gruß, Cybaer

  5. #5
    flobo79 ist offline Grünschnabel
    registriert
    30-04-2007
    Beiträge
    2

    AW: Problem mit appenden von CSS link zum DOM

    Hallo, also der Punkt geht an cybaer, es dauert tatsächlich einen Moment bis die Stile der Collection zugeführt werden. Ja IE und MOZ haben mal wieder ihre Eigenarten ;-) Danke für die Posts!!

    prost!

  6. #6
    daWonderer ist offline Routinier
    registriert
    21-04-2007
    Beiträge
    409

    AW: Problem mit appenden von CSS link zum DOM

    Zitat Zitat von cybaer Beitrag anzeigen
    Mitnichten. Das ist Standard.
    Okay, ich bezog mich auf eine Aussage von jmd. im Chat, dass ich diese Methode nich verwenden solle.
    Wahrscheinlich meinte er die setAttribute von "style", diese ist laut Selfhtml nur im IE&Konqueror verfügbar.
    Geändert von daWonderer (30-04-2007 um 12:37 Uhr)

  7. #7
    cybaer ist offline Kaiser
    registriert
    12-09-2006
    Beiträge
    1.338

    AW: Problem mit appenden von CSS link zum DOM

    Zitat Zitat von flobo79 Beitrag anzeigen
    Ja IE und MOZ haben mal wieder ihre Eigenarten ;-)
    Im IE kannst Du übrigens auch createStyleSheet() verwenden. Das fügt ein neues Element direkt in die styleSheet-Collection ein, das dann auch sofort zur Verfügung steht.
    Gruß, Cybaer

Ähnliche Themen

  1. Möchte in DOM link kreieren
    Von pascal.w im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 19-04-2007, 14:27
  2. css menü link over und link active hinzufügen
    Von djrace im Forum CSS und (X)HTML
    Antworten: 3
    Letzter Beitrag: 17-09-2005, 13:11
  3. CSS Problem
    Von THEXUL im Forum Allgemeines
    Antworten: 2
    Letzter Beitrag: 06-10-2001, 19:23
  4. Css problem bei Selectbox
    Von MasterD im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 05-10-2001, 21:02
  5. Problem mit Netscape 6.x und CSS
    Von Malte im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 13-09-2001, 01:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •