How to make nvd3 work in Internet Explorer 8? - svg

I am creating a dashboard project for which i am using nvd3 but as we know svg is not supported in IE8 so it does not render graphs/charts in IE8..please suggest how i can make nvd3 work in IE8

I'm in the same situation and I think I may just ditch nvd3 (besides no ie8 support, I'm finding other bugs). I'm wondering, has anyone successfully used r2d3 with nvd3?
My concern is that r2d3 uses d3v3 now, which nvd3 is not presently supporting (currently d3v2... d3v3 support in the works as of writing this).
For an alternative to nvd3, I'm considering:
MorrisJS!
- Works on ie8 (Raphael-based), but a newer project and less flexibility/options with the charts comparatively.
Google Chart Engine!
- I think this may be the way to go (for my project), I don't like that its not open source, but I'm already working extensively with the Google Maps API and this solution is very stable and easy to use from my experiences thus far. In limited testing in ie8 it works very well.
Also, here's another stackoverflow question on this topic, [question]: nvd3.js rendering solution for Internet Explorer
...seems r2d3 was the accepted answer there, but no one really verified it.

The library r2d3 is "a customized build of D3 powered by RaphaelJS. The combination of D3 and Raphael enable developers to easily build data visualizations that work in IE7+ and all modern browsers." - it has its limitations (see the link for details), but it would be a good place to start

Related

Why do people still use Internet Explorer 7?

I'm sure like most developers, you have gotten your code perfect only to test it on IE7 and it doesn't look right.
My analytics say that IE7 is one of the lower ranking versions of IE being used to view my website. My question is why do people still use IE7? Isn't it easier to update to a better version of IE than to still be on 7?
I'm not sure why you would be on such an old version of IE unless you are not computer literate and only use it for basic tasks.
I tried researching on the web but no such luck. Any thoughts?
Some people simply don't have a choice if their IT department has not upgraded them. If you're building your application for a specific client, build it to the lowest version they have to support. If you're just doing this on your own to publish, then just support 'modern' browser versions.

Browser Extension the "Injected way" a cross-browser extension that include a JS from a distant server

I've found this nice article about the "injected Way", but the author never finished it :
http://hightechstartups.blogspot.ch/2012/05/different-way-of-developing-browser.html
I would like a bare bone cross browser extension, without any 3rd party extensions or framework (to be as light as possible and not dependant on a 3rd party) that would load Jquery and a JS from a distant server and the ability to load it before or after the page is fully loaded.
I've read a lot of topics about the subject, but since IE10, Chrome 26 and FF20 are out with their new cross-link limitations, i was wondering if somebody had ressources, source code or tutorial about the following requirements :
I need :
Cross browser extension supporting (IE 8+ or 9+ worse case, Chrome
26+, FF20+, Safari)
Ability to inject a single JS hosted on another server. Inserts a script tag that references a javascript file in the head of the HTML
page and then be executed
Not be dependant on a third party extension (greasmonkey) or framework (Kango, Crossrider)
Ability to load before or after the page is fully loaded
This method allows me to customise the browser extension depending on the user's location and it also avoid having updates as the JS is updated on each page refresh.
I'm aware of the downsides, but i would like to achieve this.
I'm aware of cross browser framework like Kango or crossrider, but both don't fit me needs.
The closest example i could find is this How can I run a <script> tag that I just inserted dynamically from a BHO
but it only covers IE and as i got very little Csharp experience, i would like to see a full example to understand it properly and learn from example.
I would LOVE to have a few examples, even if it's not cross-browser (IE being the worst part for me).
Thanks a lot for your support !
Update1:
About Kango and Crossrider, Kango is 2000$ if you want to use IE and for Crossrider you're required to be distributed and monetized by them.
I've managed to code for IE and Chrome, but i was looking for an "elegant" way and figured it was the best place to ask given the level of knowledge of people on this site.
For the installer i currently use NSIS, but i'll test Wix too.
Finally i guess the only way for me would be to learn C++ and .net to get it to work with IE, but if anyone could provide more source code it would be great to test speed and compatibility and discuss here what's the best solution.
Why do Kango or Crossrider not fit your needs? Both frameworks allow you to manipulate the page's DOM (which is what you want):
Kango: Adding content script
Crossrider: documentation, example code
If you want to code your own solution, take a look at the relevant documentation:
Content scripts (Chrome)
The Page mod Jetpack API (Firefox)
Injected scrips (Safari)
Injected scripts (Opera)
Internet Explorer does not natively support extensions. It took me about 80 hours to create a stable and reliable IE extension which supports cross-site AJAX, a (preference) storage method and injection of scripts as early as possible in any frames based on its URL. I developed and tested the extension with Visual Express 2010 on Windows XP and Windows 7, for IE 8-10 (the extension might work on IE6/7, but I decided to not support these ancient and rarely used browsers).
First, I wrote an extension in C# based on LiveReloadIEExtension (a sample IE extension, which in turn is based on this Stack Overflow answer - see also this blog post). It was functional, but it required .NET 4, lacked support of frames, and it's relatively slow.
So, I decided to write an IE extension from scratch in C++. A good starting point is available at http://www.wischik.com/lu/programmer/bho.html: Sample code for C++ BHO, which changes the document's background based on key/mouse events. I've also learned a lot by looking at other code samples on CodeProject, topics on the MSDN forums, questions and answers on Stack Overflow, lots of other blogs, and the MSDN documentation:
DWebBrowserEvents2 interface lists several events which you use to find an appropriate injection point.
Scripting Object Interfaces (MSHTML) lists even more interfaces. You'll be mainly interested in the iHTMLDocument, iHTMLDocument2, ... interfaces.
After creating the IE extension, you want to deploy it of course. I used Wix toolset to create a MSI.

Framework for cross-browser toolbar development

I am looking for a framework with which I can create browser extensions (namely a toolbar), for all browsers (IE, Firefox, Chrome).
I have searched for a relevant solution, but none which I found were what I need:
CrossRider - no good since it can't be self-hosted. The same would apply to companies like Conduit, and nearly all other solutions I've encountered.
Kango - this does look exactly like what I need, but the license is too expensive IMHO.
Does anyone know a framework which will allow development - using js & html - of a cross-browser toolbar?
I've never tried it myself but I remember a colleague of mine talking about firebreath a while ago.

Should i be using HTML5 and CSS3?

I'm someone who wants to be up on the latest web technologies but also appreciate that alot people still use IE6/7/8. Is it a waste of code/time if half of it wont be displayed on most browsers? Is it just a case of using different style sheets, or just use one style sheet and if a browser doesnt support text-shadow, then screw it, they can see it without the nice effects. What are peoples thoughts?
It depends on your userbase. I am an intranet developer and my company still uses IE6(!!!) so we have no choice but to support IE6. I also develop some public facing websites and we use Analytical tools to see the which Browser is being used more and ignore ones which are less used. in this case IE6 was the least used Browser.
I won't go for HTML5 and CSS3 till Internet Explorer 9 or Firefox 4 (absolute release, not alpha or beta) is released, because these two browsers make up the most of web traffic (afaik, correct me if I'm wrong) and using html5 or css3 will be a big loss.
And yeah, it depends on your userbase too.
I'm developing a small-business oriented online app and decided to support only IE8, FF and Chrome. I also went for one stylesheet that degrades nicely (text-shadow, rounded corners). IE8 users will see square corners but it doesn't make the site unusable in any way.
I just think that the cost of making everything look perfect in all browsers (and maintaining it!) is much higher than the benefits.
The above also applies to HTML5 IMHO - unless you know that vast majority of your users will have an HTML5-compatible browser there's no need to invest in it right now. Unless the whole point of your site is to use one of the newest features.
Just tell yourself what problem of your users you are actually solving and solve that one.

Is it sensible to dynamically generate SVG images on websites yet?

I'm just learning about SVG, and it seems great but I'm not sure about browser support - have people successfully got around this, or is it still too early?
Raphael is a cross-browser vector graphics library which might be worth a look.
You can use John Resig's processing.js library to get cross-browser compatibility.
There is also Walter Zorn's (lot of DIVs) technique, that doesn't use SVG.
There is a new way to bypass internet explorer's lack of svg-capabilities:
The google project svgweb: Scalable Vector Graphics for Web Browsers using Flash.
It's a JavaScript library which provides SVG support on many browsers, including Internet Explorer, Firefox, and Safari.
I thought it was worth updating this dialog because things are becoming more "do able" in SVG cross-browser. As someone who has implemented some (fairly significant) systems for organisation I have been "dabbling" into the world of "cross-browser" SVG.
I see the words "still too early" on a dialog started 11 months ago and I'm adding to it.
Please go to my site that shows some of the capabilities of Raphael. You can easily link to the main Raphael site there after your pitstop.
My website was implemented with Raphael 0.8.6 but the creater of "Rap" just brought version 1.0 from beta and that (additionally) fully supports SVG "paths"
If you want to visit the world of CROSS-BROWSER interactive/SVG in it's current status please visit these constamtly updated websites via:
http://www.irunmywebsite.com/raphael/raphaelsource.html
I'd say your best bet is to create the image in whatever format you're most comfortable with, then convert it to SVG with something like ImageMagick. You could write PostScript by hand or with a library, or directly create the image from simple text/shape primitives using the ImageMagick API. There's pretty good documentation, and you can call ImageMagick as a COM object (assuming your language has good COM support).
Adobe also makes an SVG viewer plugin that you can link to on your site for people to get full functionality of your site. Unfortunately, they are discontinuing support for the plugin, but by that time, it is expected that more browser support will be forthcoming (hopefully). Several years ago I worked for a company that wrote an entire web app using SVG, and we had great success with this plugin.

Resources