Thursday, December 8, 2011

FusionCharts (v3.2.2) javascript bug in IE 8

A customer I’m working with requires data generated charts on their EPiServer website, and for that purpose I’ve implemented FusionCharts. By default FusionCharts render Flash charts with a javascript fallback, or you can simply choose to always render javascript charts if you’re not a fan of Flash.

The FusionCharts documentation is one of the best documentations I’ve ever seen, a pleasure to read, and the installation takes two minutes. Seems like a blast doesn’t it!

I thought so until the front-end developer for the project I’m working on came over to my desk and informed me that the charts did not render in IE 8. They worked fine in IE 7 and IE 9, but not IE 8. Say what? I checked it out and saw that FusionCharts.js gave me a “Invalid argument” error on line 76. Since Google is my friend, I googled the problem and found A LOT of other developers on the FusionCharts forum running into the same problem, but the only answer from FusionCharts was that their developers were working on it. They’ve been working on it for over a month and could not say when the bug would be fixed.

The project is going live in about two weeks, so I don’t have time to wait for other developers to fix their bugs. I tried downgrading to the previous version of FusionCharts, but that caused me some other problems, so I went back to v3.2.2. I googled some more and found a FusionCharts service release that was newer than the version I am using, but the javascript error seemed to be living happily ever after.

So what solved my problems?

I have several charts on one page, and therefore each chart needs its separate ID. Being a developer, I set the ID to be a number (big mistake). Apparently the ID can contain numbers, but it cannot begin with a number, so ID=Chart1 is fine, but ID=1Chart will give you a javascript error in IE 8.

Hopefully they’ll fix this in the next version, or at least add a note of it in their (almost) perfect documentation.

8 comments:

  1. Hi,

    This is Rishi from FusionCharts.

    It seems strange that the latest Service Release 1 still persists the error for you.

    I suggest you get in touch with our Support Team at support [at] fusioncharts.com

    We'll get it solve it as soon as possible.

    Thanks.

    ReplyDelete
  2. Hi Karoline,
    Thanks for your appreciation of our (almost perfect) documentation.
    The problem you mention is a known bug of IE8 and we have been tracking this bug for quite some time now.
    Here is more information about this: http://code.google.com/p/swfobject/issues/detail?id=312

    The issue is IE8 goes berserk when an HTML element ID does not start with alphabets which means we will have to roughly create an abstraction layer and auto-generate chart ids that will then be associated with the ones you pass.

    We have been working on a solution to this, but thanks to your inputs we will add the issue and the work around that you have suggested to our documentation in the interim.

    If you have any additional queries or inputs, feel free to contact me directly at vikram[at]fusioncharts[dot]com

    Vikram Bhaskaran
    Director, Marketing
    FusionCharts

    ReplyDelete
  3. Hi Vikram,

    Thank you for explaining the issue in details for me, I appreciate you taking your time!

    Keep up the great work :) Hopefully I'll be lucky enough to work with FusionCharts again soon!

    Karoline

    ReplyDelete
  4. Hi Karoline,
    My name is Thiago and I'm a programmer from Brazil and I'm FusionCharts as well.
    I would like to know if you got a answer or a solution for the IE8 bug, we are having the same problem you did.
    Thanks in advance!
    Best wishes from Brazil!

    ReplyDelete
  5. Hi Thiago,

    The solution is explained in the blogpost under the "So what solved my problems?" headline :)

    In short: Make sure your chart IDs start with a letter instead of a number. ID=1 will give a javascript error in IE 8 while ID=One will not.

    Hope this helps!

    Karoline

    ReplyDelete
  6. Hi Karoline,

    I too have issues with ie8...it seems to be much deeper than just the ID issue you mention. I am working in ASPX and in IE 9 all works well. In ie 8 the data builds out but does not display content. I can see it in the view source. HAve you had other issues with IE and is there a new updated download I should get from FUSION charts web site?

    thanks
    ~alan

    ReplyDelete
    Replies
    1. Hi Alan,

      Unfortunately, I haven't experienced the troubles you're explaining and I can't think of any logical reasons why it happens. Have you tried contacting FusionCharts support? They're very helpful, take a look at http://support.fusioncharts.com/

      Good luck!

      Delete
  7. Incredible, for simple, but powerfull solution. One of my clients is still using Windows XP and IE8 and had this problem, I changed the id generation and it solved the problem.

    Thanks for sharing!

    ReplyDelete