可以让Excanvas在IE 8中运行吗?

我曾经在一个名为’BeautyTips’的jQuery插件上工作,它工作得很好。 但是,因为我已经安装了IE 8,这个插件停止工作,因为它需要Excanvas来让IE绘制矢量,图像等。

我试图下载更新版本的Excanvas,但它根本不起作用……

尝试在使用excanvas初始化canvas元素之前将canvas元素附加到文档:

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); 

IE8的新“标准”模式关闭了一些非标准function。 其中VML是由excanvas使用的。 我只是为IE7’标准’模式设置,所以它仍然有效。

  

令人沮丧,但我不知道IE8带来的任何优势。

是的,我有在IE8标准模式下工作的excanvas(仅测试我们需要的用法)。 在CanvasRenderingContext2D_函数中,我注释掉了这一行:

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

节点对象el的宽度和高度为0px×0px,因此不将溢出设置为隐藏使得渲染的项目可见。

我确实改变了canvasPieTimer的创建顺序,以获得所需的结果。 我希望这是有帮助的。

你确定你安装了最新版本的excanvas.js吗? (2009年3月发布,托管在新的Google Code项目页面上)

我在IE8和AFAIK中使用了Beauty Tips插件,它在IE8本机模式下工作。

最新的bt插件版本为我解决了这个问题。

使用jquery将canvas标记作为html字符串附加不适用于新版本的excanvas。 您必须首先使用document.createElement(’canvas’)。

如果有人仍然有这个问题:美容提示版本0.9.5修复此问题。 但是如果你必须使用早期版本(就像我一样,因为新版本引入了在我的页面中过早关闭提示的问题),你应该用这些行代替第530行:

 var canvas = document.createElement('canvas'); $(canvas).attr('width', (numb($text.btOuterWidth(true)) + opts.strokeWidth*2)).attr('height', (numb($text.outerHeight(true)) + opts.strokeWidth*2)).appendTo($box).css({position: 'absolute', top: $text.btPosition().top, left: $text.btPosition().left, zIndex: opts.boxzIndex}); 

希望能帮助到你。

Interesting Posts