Я извлекаю данные из 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
});