从javascript访问JSF资源

时间:2015-05-08 18:35:42

标签: javascript jsf jsf-2

我想从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\']}';,但它无法正常工作..

我该怎么办?

1 个答案:

答案 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