Шаблоны jQuery для динамического рендеринга изображения из тега - PullRequest
2 голосов
/ 17 сентября 2011

В моем шаблоне у меня есть этот код:

<ul>
    <li>${members_pics['0']}</li>
    <li>${members_pics['1']}</li>
</ul>

Атрибут members_pics содержит это значение:

<img typeof="foaf:Image" src="http://localhost/parce/sites/default/files/styles/profile_picture/public/pictures/picture-1-1316209044.jpg" alt="" /> 

Когда сценарий обрабатывает вместо того, чтобы получить фактическое изображение, отображаемое на моей странице, он печатает указанное выше значение в виде строки.

Я что-то упустил?

Изменить: Вот мой код jquery:

    searchBut.click(function(){
        jQuery.ajax({
           type: "POST",
           url: queryURL,
           data: "country="+countryInput.val(),
           success: function(result){

             searchResults = JSON.parse(result);

             console.log(searchResults);

             jQuery.each(searchResults,function(index){
                this.field_city = this.field_city.und["0"].value;
                 [..]

             });

             jQuery('#parceSearchTpl').tmpl(searchResults).appendTo(searchWarper);  
           }
         });
    })

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Ваш тег изображения кодируется в формате HTML.

Вы должны изменить свой шаблон так:

<ul>
    <li>{{html members_pics['0']}}</li>
    <li>{{html members_pics['1']}}</li>
</ul>

Это выведет необработанную строку. Если строка исходит из ненадежных источников, это может сделать ваш сайт уязвимым для атак XSS.

0 голосов
/ 17 сентября 2011

Я могу придумать два решения вашего вопроса (если я правильно понимаю)

  • выполнение new Image(...) вашего результата.
  • Тестирование изображений из localhostв вашем браузере вряд ли будет работать.Запустите локальный сервер для проверки с
...