2012-03-16 43 views
3

nodename如果通過highcharts生成的圖表玩耍,並將其導出到SVG,我得到每6秒Highcharts的不確定

很多誤區,約1000(未定義的節點名稱)

負責的代碼是這樣的:

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 

小提琴重新創建here,重現單擊該系列開/關,然後單擊My Download鏈接,再次打開/關閉並再次單擊My Download鏈接。

我的問題如下,這是我的代碼,或者是一個高地圖中的錯誤;我該如何解決它?

+0

我還應該提到這隻發生在scriptaculous包含 – epoch 2012-03-16 13:42:12

回答

1

得到了我正在尋找的答案;這是一個高難度的bug,修正here

0

我並不真正熟悉的原型框架,但我做了一些測試,看看這段代碼:

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

    return svg; 
} 

不知怎的,這each方法返回兩個對象,一個是undefined。所以做了簡單的檢查:

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

或在一行

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

,它應該工作。

+0

感謝您的幫助,但它仍然有同樣的錯誤。 – epoch 2012-03-19 06:42:09