HumbleSoftware/Flotr2

Bug IE: Flotr.DOM.node : use removeChild to detach the element from the DIV, and prevent to be removed when div.innerHTML is called

Kobee1203 opened this issue · 0 comments

I try to define my own legend container.

But in IE, when the following lines is called, the created table is empty :

if(legend.container){
  table = D.node(table);
  this.legend.markup = table;
  D.insert(legend.container, table);
}

The problem comes from the D.node function (Flotr.DOM.node) that retrieves the DOM element (variable n) after adding it to a DIV.
However, when the line DIV.innerHTML = ''; is called, the element 'n' is emptied.

One solution would be to detach the element from the DIV using removeChild:

node: function(html) {
    var div = Flotr.DOM.create('div'), n;
    div.innerHTML = html;
    /* FIX : IE: use removeChild to detach the element from the DIV, and prevent to be removed when div.innerHTML is called */
    n = div.removeChild(div.children[0]);
    div.innerHTML = '';
    return n;
  }