12

我正在尝试将 HTML 链接添加到 Google Chart Table 列。我对列和表都有 setHTML: true ,但它只是显示 HTML 代码而不是解释它。有人可以指出我正确的方向吗?

谢谢

<!--
You are free to copy and use this sample in accordance with the terms of the
Apache license (http://www.apache.org/licenses/LICENSE-2.0.html)
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1', {packages: ['table']});
    </script>
    <script type="text/javascript">

     function drawVisualization() {
      // Create and populate the data table.
      var data = google.visualization.arrayToDataTable([
        ['Name', 'Logged In'],

        ['<a href="LINK">Item 1</a>', 'Item 2'],
     ]);

       data.setColumnProperty(0, {allowHTML: true});
   // Create and draw the visualization.
   visualization = new google.visualization.Table(document.getElementById('table'));
       visualization.draw(data, {allowHTML: true});
    }

   google.setOnLoadCallback(drawVisualization);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="table"></div>
  </body>
</html>
​
4

3 回答 3

14

allowHTML 属性区分大小写。它必须是 {allowHtml: true}。

于 2013-01-15T17:40:09.043 回答
2

您应该使用格式化程序

如果您用 HTML 替换值,那么排序将无法正常工作。

于 2015-03-31T14:05:51.763 回答
2

visualization = new google.visualization.Table...和之间visualization.draw(data, {allowHtml: true}),添加一个新类DataView来格式化列:

示例:在这里,我们将包含网站名称的第一列与第三列中给出的 URL 进行超链接,然后在第三列中超链接 URL 字符串本身。列索引不是 data.table 中的实际索引,而是相对于.format(data, [,])在声明变量以格式化列1后指定的索引。

// hyperlink column containing website title
var format_name = new google.visualization.PatternFormat(
'<a href="{2}">{0}</a>');

// hyperlink URL column
var format_url = new google.visualization.PatternFormat(
'<a href="{0}">{0}</a>');

// apply formatters
// extract first three columns (or 0 and 2) for format_name variable
format_name.format(data, [0,1,2]);

// extract the third column for format_url variable
format_url.format(data, [2]);

// Use DataView to create read-only view for data.table
var view = new google.visualization.DataView(data);

// Use view instead of original data for data.table source
visualization.draw.draw(view, {allowHtml: true});
于 2018-02-03T05:40:21.060 回答