Domino 9 und frühere Versionen > ND8: Entwicklung - XPages

Einbindung eines CSS-Elements mittels SSJS

(1/1)

Fineas:
Hallo X-Pages Hacker, Hallo Sven,

wie kann man elegant ein einzelnes CSS-Element dynamisch in eine Page einbinden?

Ich brauche ein Stylesheet, dessen Inhalt sich aus einer Session-Variable ergibt. Die Einbindung als Ressource wäre sinnloser Mehraufwand - aber anscheinend ist SSJS generiertes CSS nicht vorgesehen.

Aktuell gehe ich den Umweg über CSJS. Das ist aber auch unnötig kompliziert.

Heiko!

Sven Hasselbach:
Um einen CSS Style in den Header einzubinden, kann man den Content einer CSS Resource berechnen:


--- Code: --- <xp:this.resources>
<xp:styleSheet>
<xp:this.contents>
                           <![CDATA[${javascript:"body{background-color:rgb(64,0,128)}"}]]>
                        </xp:this.contents>
</xp:styleSheet>
</xp:this.resources>

--- Ende Code ---

Das ist natürlich nur beim Laden der XPage möglich.

Um ein CSS Style im HTML Body zu erstellen, kann ein Computed Text weiterhelfen:


--- Code: --- <xp:text
escape="true"
tagName="style"
styleClass="">
<xp:this.value><![CDATA[#{javascript:"body{background-color:rgb(64,0,"+ sessionScope.Blue + ")}"}]]></xp:this.value>

<xp:this.attrs>
<xp:attr
name="type"
value="text/css">
</xp:attr>
</xp:this.attrs>
</xp:text>

--- Ende Code ---

Dieses Element wird z.B. bei einem Partial Refresh neu berechnet.

Fineas:
Variante 2 sieht interessant aus und wird getestet.

DANKE!

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln