views:

2845

answers:

6

I used to work on a jQuery plugin named 'BeautyTips' and it was working just fine. But, since I've installed IE 8, this plugin stop working 'cause it needs Excanvas to make IE draw the vectors, images etc.

I've tried to download the newer version of Excanvas but it's not workint at all...

thanks

+8  A: 

The new 'standards' mode of IE8 turns off some nonstandard features. Among them VML, which is used by excanvas. I just set for IE7 'standards' mode, so it still works.

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Frustrating, but i don't know of any advantage brought up by IE8.

Javier
That's pretty good. When I had to use Canvas on IE8 I threw it into quirks mode instead, which sucked.
Nosredna
it used it at first, but kept getting on lots of problems on other parts of the page. manually setting into IE7 compatibility fixed most, so i kept googling until found this item. in theory future IE's (oh God, no!) will allow you to choose from a wide variety of 'standards', from past versions
Javier
mmm, the last version seems only to work only with the compatibility mode, for me too
Peanuts
IE is just IE... -_-
Thqr
+1  A: 

Are you sure you have the most recent version of excanvas.js installed? (released in March 2009, hosted on the new Google Code project page)

I used the Beauty Tips Plugin in IE8 and AFAIK it worked in IE8 native mode.

Franz
I didn't know there was a new excanvas. Thanks.
Nosredna
+1  A: 

FYI the latest bt plugin version fixes this issue for me.

jeff

jeff Walters
@jeff, I've tried to use that version, but it didn't work it for me. I had to do some other stuff to make it works!
AndreMiranda
I'm using the lastest version but it doesn't work neither, I deleted my cache but still nothing. Any ideas ?
Peanuts
+1  A: 

Yes, I have got excanvas working in IE8 standards mode (only tested for the usage we required). In the function CanvasRenderingContext2D_ I commented out the line:

//el.style.overflow = 'hidden';//fix IE8

The width and height of the node object el was 0px by 0px, so not setting the overflow to hidden made the rendered item visible.

I did change the order of the creation of the canvasPieTimer a bit, to get the required result. I hope this is helpful.

Ronald B.
Looks like this may be where the issue is. Turning overflow off for the canvas element I was using fixed the issue when debugging.
Ian
+1  A: 

Try appending the canvas element to the document before initializing it using excanvas:

var foo = document.getElementById("targetElementID");
var canvas = document.createElement('canvas');
canvas.setAttribute("width", 620);
canvas.setAttribute("height", 310);
canvas.setAttribute("class", "mapping");
foo.appendChild(canvas);
canvas = G_vmlCanvasManager.initElement(canvas);
Jeff Lamb
A: 

Appending a canvas tag as a string of html with jquery doesn't work with the new version of excanvas. You have to use document.createElement('canvas') first.

Markus