18

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

我试图下载较新版本的 Excanvas,但它根本不工作......

4

7 回答 7

16

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

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

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

于 2009-06-02T18:56:20.400 回答
14

是的,我已经让 excanvas 在 IE8 标准模式下工作(仅针对我们需要的用途进行了测试)。在函数CanvasRenderingContext2D_我注释掉了这一行:

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

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

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

于 2009-11-16T08:08:12.303 回答
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);
于 2009-12-03T19:02:31.477 回答
2

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

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

于 2009-06-02T22:05:00.487 回答
1

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

于 2009-06-19T22:56:42.730 回答
0

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

于 2010-07-20T18:38:25.570 回答
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});

希望能帮助到你。

于 2011-08-24T12:08:02.973 回答