La risposta di @elo è corretta e votata positivamente, anche se ho dovuto riordinarla un po 'per renderla più chiara:
const myChartEl = document.getElementById('the-id-name');
const myChart = Highcharts.charts[myChartEl.getAttribute('data-highcharts-chart')];
myChart
quindi diventa un oggetto Highcharts live che espone tutti gli oggetti di scena presenti nel grafico che viene visualizzato nel file myChartEl
. Poiché myChart
è un oggetto Highcharts , è possibile concatenare metodi prototipo subito dopo, estenderlo o fare riferimento ad esso.
myChart.getTable();
myChart.downloadXLS();
setTimeout(() => Highcharts.fireEvent(myChart, "redraw"), 10);
Si può anche myChart
passare .highcharts()
, che è un jQuery
plugin:
var myChart = $("#the-id-name").highcharts();
L' approccio jQuery
plug-in di cui sopra richiede jQuery
di essere caricato prima di utilizzare il plug-in e, naturalmente, il plug-in stesso. È stata l'assenza di questo plug-in che mi ha portato a cercare modi alternativi per ottenere lo stesso risultato con JavaScript vanilla puro.
Utilizzando l'approccio JS puro sono stato in grado di fare ciò di cui avevo bisogno (il secondo frammento di codice) senza dover fare affidamento sujQuery
: