Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Fineas am 19.06.13 - 16:31:44

Titel: Einbindung eines CSS-Elements mittels SSJS
Beitrag von: Fineas am 19.06.13 - 16:31:44
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!
Titel: Re: Einbindung eines CSS-Elements mittels SSJS
Beitrag von: Sven Hasselbach am 20.06.13 - 00:09:03
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>

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>

Dieses Element wird z.B. bei einem Partial Refresh neu berechnet.
Titel: Re: Einbindung eines CSS-Elements mittels SSJS
Beitrag von: Fineas am 20.06.13 - 14:21:53
Variante 2 sieht interessant aus und wird getestet.

DANKE!