根据某些CSJS条件从主题设置CSS资源的呈现属性?

时间:2013-04-03 14:32:01

标签: css themes xpages xpages-ssjs

有没有办法根据某些JavaScript条件计算渲染属性?

例如:

  

如果document.compactMode ==“BackCompat”

我找到的所有例子;使用SSJS#{javascript:condition;}

例如:

<resource rendered="#{javascript:context.getUserAgent().isIE(0,6)}">
    <content-type>text/css</content-type>
    <href>global.css</href>
</resource>

如何混合这样的东西:

<![CDATA[return document.compactMode == "BackCompat"? true: false;]]>

2 个答案:

答案 0 :(得分:2)

您不能使用CSJS来计算服务器端。这在概念上是不可能的,因为CSJS在浏览器中执行,主题在服务器上计算。

您可以做什么:执行一些CSJS并将结果发送到服务器。然后,在服务器上,您可以处理此数据并执行主题属性的计算。

F.e。您可以打开登录页面,执行CSJS,然后使用一些URL参数或cookie重定向到目标XPage,或者......然后您可以访问服务器端的数据。

<resource rendered='#{javascript:context.getUrlParameter("CSJS") == "1"}'>
   <content-type>text/css</content-type>
   <href>global.css</href>
</resource>

如果您使用网址?CSJS = 1 打开XPage,则会添加 global.css

答案 1 :(得分:0)

修改CSS可能更有意义,以便单个CSS文件处理多个浏览器?例如,请参阅http://webdesignerwall.com/tutorials/css-specific-for-internet-explorer