2014-09-23 50 views
3

我想用https://github.com/nicolaskruchten/pivottable,基本上我想在表格中显示图像。我迄今为止所做的是;但它不会显示图像的img标签,而不是它认为它作为字符串pivottable在表格中显示html

<body> 
<script type="text/javascript"> 
$(function(){ 
    $("#output").pivotUI(
     [ 
      {product: "product1", image: "<img src='image1' alt='' height='42' width='42'>"}, 
      {product: "product2", image: "<img src='image2' alt='' height='42' width='42'>"} 
     ] 
    ); 
}); 
</script> 

<p><a href="http://nicolas.kruchten.com/pivottable/examples/index.html">« back to examples</a></p> 
<div id="output" style="margin: 10px;"></div> 
</body> 
+0

现在这是一个支持的功能:) – nicolaskruchten 2015-01-08 12:40:21

+0

我不得不遗憾的是去除支持此功能,毕竟,因为它创造了一个XSS安全漏洞。详情请参阅https://github.com/nicolaskruchten/pivottable/pull/401 – nicolaskruchten 2015-12-11 14:01:01

回答

4

由于表格绘制的th元素不支持HTML的价值观,它明确地规定的日,你必须创建自己的渲染器的textContent财产。 您有两种选择:

1.根据表格渲染器代码创建渲染器并将textContent更改为innerHTML。我将使用的jsfiddle片段,因为渲染功能是相当大的:http://jsfiddle.net/u3pwa0tx/

2.Reuse现有这显示HTML作为纯文本表格绘制,但它返回到父要追加之前,将所有个文本TH HTML 。

编辑:我创建了主要仓库拉入请求https://github.com/nicolaskruchten/pivottable/pull/214

$(function(){ 
    var rendererHtml = function(){ 
     var result = pivotTableRenderer2.apply(this,arguments); 
     $(result).find('th').each(function(index,elem){ 
      var $elem = $(elem); 
      $elem.html($elem.text()); 
     }) 
     return result; 
    } 

    $("#output").pivotUI(
     [ 
      {product: "product1", image: "<img src='image1' alt='' height='42' width='42'>"}, 
      {product: "product2", image: "<img src='image2' alt='' height='42' width='42'>"} 
     ],{ 
      renderers:{ 
       'table2Renderer': rendererHtml 
      } 
     } 
    ); 
}); 
+0

我向你的朋友致敬,除了当我将图像字段拖放到pvtAxisContainer pvtHorizList上时,它的功能非常完美。我没有在那里显示图像 – Ktt 2014-09-24 05:57:49

+1

@Ktt在哪个版本不起作用?第一还是第二?它是多个'textContent'属性,我更新了所有jsfiddle:http://jsfiddle.net/u3pwa0tx/1/ – 2014-09-24 06:01:04

+0

它现在应该工作 – 2014-09-24 06:09:28