从 javascript 访问 JSF 资源
Access JSF resource from javascript
我想从 javascript 函数访问 JSF 资源(在 WebPages/resources/img
下),例如:
function hideSpinner() {
arguments[i].poster = './img/sppiner.png';
}
我已经尝试了 arguments[i].poster = "${resource['img/sppiner.png']}";
和 arguments[i].poster = '${resource[\'img/sppiner.png\']}';
但它不起作用..
我能做什么?
EL 表达式仅在 Facelets (XHTML) 文件和通过 <h:outputStylesheet>
加载的 CSS 文件中计算。它们不会在通过 <h:outputScript>
.
加载的 JS 文件中进行评估
您基本上需要呈现一个内联脚本,该脚本设置一个(全局)JavaScript 变量,而 JS 文件应该引用该变量。
<h:outputScript>var spinnerImage = "${resource['img/sppiner.png']}";</h:outputScript>
<h:outputScript name="js/some.js" />
arguments[i].poster = spinnerImage;
然而,更简洁的方法是将图像设置为与特定 CSS 样式相关联的 CSS 背景图像 class 然后让 JavaScript 设置它在所需元素上添加样式 class。如前所述,您可以在通过 <h:outputStylesheet>
加载的 CSS 文件中使用 EL 表达式。另见 a.o。 How to reference JSF image resource as CSS background image url.
我想从 javascript 函数访问 JSF 资源(在 WebPages/resources/img
下),例如:
function hideSpinner() {
arguments[i].poster = './img/sppiner.png';
}
我已经尝试了 arguments[i].poster = "${resource['img/sppiner.png']}";
和 arguments[i].poster = '${resource[\'img/sppiner.png\']}';
但它不起作用..
我能做什么?
EL 表达式仅在 Facelets (XHTML) 文件和通过 <h:outputStylesheet>
加载的 CSS 文件中计算。它们不会在通过 <h:outputScript>
.
您基本上需要呈现一个内联脚本,该脚本设置一个(全局)JavaScript 变量,而 JS 文件应该引用该变量。
<h:outputScript>var spinnerImage = "${resource['img/sppiner.png']}";</h:outputScript>
<h:outputScript name="js/some.js" />
arguments[i].poster = spinnerImage;
然而,更简洁的方法是将图像设置为与特定 CSS 样式相关联的 CSS 背景图像 class 然后让 JavaScript 设置它在所需元素上添加样式 class。如前所述,您可以在通过 <h:outputStylesheet>
加载的 CSS 文件中使用 EL 表达式。另见 a.o。 How to reference JSF image resource as CSS background image url.