2015-05-08 2 views
2

Я хочу получить доступ к ресурсам JSF (под WebPages/resources/img) из яваскрипта функции, как:Доступ JSF ресурсов из JavaScript

function hideSpinner() { 
    arguments[i].poster = './img/sppiner.png'; 
} 

Я попытался arguments[i].poster = "${resource['img/sppiner.png']}"; и arguments[i].poster = '${resource[\'img/sppiner.png\']}';, но он не работает ..

Что может Я делаю?

+0

Попробуйте '# {request.contextPath}/resources/img/sppiner.png'. Он будет работать, если ваша функция javascript находится на лицевой странице. –

ответ

2

EL выражения оцениваются только в файлах Facelets (XHTML) и в файлах CSS, загружаемых через <h:outputStylesheet>. Они не оцениваются в файлах JS, загруженных через <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, а затем просто дайте JavaScript установить этот класс стиля на нужном элементе. Как сказано, вы можете использовать выражения EL в файлах CSS, загруженных через <h:outputStylesheet>. См. Также a.o. How to reference JSF image resource as CSS background image url.

+0

спасибо! Ты большой! – RoberV

Смежные вопросы