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

根据某些CSJS条件为主题中的CSS资源设置呈现属性?,css,themes,xpages,xpages-ssjs,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>

是否有任何方法可以基于某些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>

文本/css
global.css
它怎么能混合成这样的东西:

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

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

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

例如,你可以打开一个登录页,执行你的CSJS,然后用一些URL参数或cookie或。。。然后您可以访问服务器端的数据

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

文本/css
global.css

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

也许修改css使单个css文件可以处理多个浏览器更有意义?例如,请参见

Thank@David,我也尝试过,只是在我的案例中,它不仅基于IE版本;如果浏览器处于QuirksMode,我想加载css文件。