我想从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\']}';
,但它无法正常工作..
我该怎么办?
答案 0 :(得分:2)
EL表达式仅在Facelets(XHTML)文件和通过<h:outputScript>
加载的CSS文件中进行评估。它们不会在通过<h:outputScript>var spinnerImage = "${resource['img/sppiner.png']}";</h:outputScript>
<h:outputScript name="js/some.js" />
加载的JS文件中进行评估。
您基本上需要渲染一个内联脚本,该脚本设置JS文件应该引用的(全局)JavaScript变量。
arguments[i].poster = spinnerImage;
<h:outputStylesheet>
然而,更清晰的是将图像设置为与特定CSS样式类关联的CSS背景图像,然后让JavaScript在所需元素上设置该样式类。如上所述,您可以在通过:nth-child
加载的CSS文件中使用EL表达式。另见a.o. How to reference JSF image resource as CSS background image url