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

时间:2009-06-02 18:35:29

标签: jquery internet-explorer-8 canvas excanvas beautytips

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

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

7 个答案:

答案 0 :(得分:16)

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

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

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

答案 1 :(得分:14)

是的,我已经让excanvas在IE8标准模式下工作(只测试了我们需要的用法)。在函数 CanvasRenderingContext2D _ 中,我注释掉了这一行:

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

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

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

答案 2 :(得分:10)

尝试在使用excanvas初始化之前将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);

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

如果还有人遇到此问题: Beauty Tips版本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});
希望它有所帮助。