Невозможно установить внутреннюю HTML для древовидной карты в Google Chart - PullRequest
0 голосов
/ 03 мая 2020

Я извлекаю данные из Google Sheet, чтобы нарисовать TreeMap. Когда я достигаю листового узла на диаграмме, я хочу заменить текст узла другим текстом. Не пытаясь заменить данные, просто покажите другой текст для конечного узла.

По какой-то причине я могу изменить textContent, но браузер начинает обрабатывать sh, не выдавая ошибку при попытке чтобы изменить внутреннюю HTML:

  function changeText() {
  var selection = chart.getSelection();
  console.log(selection);
  var details = data.getValue(selection[0].row, 4);
  if (details != null){
  console.log("leaf node selected");

  Array.prototype.forEach.call(container.getElementsByTagName('rect'), function(rect) {
    var y = rect.parentNode.getElementsByTagName('text');
    var currentText = y[0].textContent;
    console.log(currentText);
    //this is fine
    y[0].textContent = details;

    //this makes computer explode
    //y[0].innerHTML = "<b>hello!</b>"
  });
}
}

Вот как я вызываю эту функцию:

var observer = new MutationObserver(changeText);
observer.observe(container, {
  childList: true,
  subtree: true
});

И у меня установлено "allow Html: true" в моем варианты:

        chart.draw(data, {
      minColor: '#0583F2',
      midColor: '#05F2DB',
      maxColor: '#FFE86D',
      height: '740',
      headerHeight: 18,
      fontColor: 'black',
      showScale: false,
      showTooltips: true,
      generateTooltip: showFullTooltip,
      maxDepth:1,
      maxPostDepth:2,
      textStyle:{ color: 'black',
            fontName: 'Arial',
            fontSize: 16,
            bold: true,
            },
      hintOpacity:0,
      useWeightedAverageForAggregation:false,
      allowHtml:true
    });
...