jQuery模板,用于从标记动态呈现图像

时间:2011-09-17 11:30:17

标签: jquery jquery-templates

在我的模板中,我有这段代码:

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

答案 0 :(得分:1)

您的图片代码正在进行HTML编码。

您应该像这样更改模板:

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

那将输出原始字符串。如果字符串来自不受信任的来源,则可能会使您的网站容易受到XSS攻击。

答案 1 :(得分:-2)

我可以为您的问题考虑两种解决方案(如果我理解正确的话)

  • 对您的结果进行new Image(...)
  • 在浏览器中测试来自localhost的图片不太可行。运行本地服务器以使用
  • 进行测试