Highcharts имя узла не определено - PullRequest
3 голосов
/ 16 марта 2012

Когда я играю с графиком, сгенерированным старшими диаграммами, и экспортирую его в SVG, я получаю много ошибок, около 1000 (имя узла не определено) за 6 секунд

Ответственный код - это:

element = wrapper.element,
nodeName = element.nodeName, // <---- Here (Cannot read property 'nodeName' of undefined)
renderer = wrapper.renderer,
skipAttr,
attrSetters = wrapper.attrSetters,
shadows = wrapper.shadows,
hasSetSymbolSize,
ret = wrapper;

Трассировка стека (в Chrome 17.0.963)

Uncaught TypeError: Cannot read property 'nodeName' of undefined
SVGElement.attr highcharts.src.js:2008
init.Effect.HighchartsTransition.Class.create.update prototype-adapter.src.js:86
(anonymous function) effects.js:1
Effect.Base.Class.create.loop effects.js:1
Effect.ScopedQueue.Class.create.loop effects.js:1
b prototype.js:1

Скрипка для воссоздания : здесь , для воспроизведения нажмите на серию вкл / выкл, а затем нажмите на ссылку My Download, снова включите / выключите и снова нажмите на ссылку My Download.

Мой вопросследующим образом, это мой код или ошибка в старших чартах;и как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Получил ответ, который искал;Это была ошибка в старших чартах, исправленная здесь

0 голосов
/ 16 марта 2012

Я не очень знаком с платформой Prototype, но я провел несколько тестов и посмотрел на этот код:

function getGraphSVG(options) {
    var svg;
    if (window.charts) {
        window.charts.each(function(pair) {
            svg = pair.value.getSVG(options);
            throw $break;
        });
    }

    return svg;
}

Каким-то образом этот метод each возвращает 2 объекта, один из которых undefined.Так что сделайте простую проверку:

if (pair.value)
     svg = pair.value.getSVG(options);

или в одну строку

pair.value && ( svg = pair.value.getSVG(options) );

и все должно работать.

...