1

有没有办法根据一些 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;]]>
4

2 回答 2

2

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

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

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

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

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

于 2013-04-03T15:17:18.267 回答
0

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

于 2013-04-03T17:52:30.330 回答