我曾经在一个名为“BeautyTips”的 jQuery 插件上工作,它工作得很好。但是,由于我安装了 IE 8,这个插件停止工作,因为它需要 Excanvas 来让 IE 绘制矢量、图像等。
我试图下载较新版本的 Excanvas,但它根本不工作......
我曾经在一个名为“BeautyTips”的 jQuery 插件上工作,它工作得很好。但是,由于我安装了 IE 8,这个插件停止工作,因为它需要 Excanvas 来让 IE 绘制矢量、图像等。
我试图下载较新版本的 Excanvas,但它根本不工作......
IE8 的新“标准”模式关闭了一些非标准功能。其中VML,就是excanvas使用的。我刚刚设置为 IE7 的“标准”模式,所以它仍然有效。
<meta http-equiv="X-UA-Compatible" content="IE=7" />
令人沮丧,但我不知道 IE8 带来的任何优势。
是的,我已经让 excanvas 在 IE8 标准模式下工作(仅针对我们需要的用途进行了测试)。在函数CanvasRenderingContext2D_我注释掉了这一行:
//el.style.overflow = 'hidden';//fix IE8
节点对象 el 的宽度和高度为 0px x 0px,因此不将溢出设置为隐藏会使渲染的项目可见。
我确实稍微更改了canvasPieTimer的创建顺序,以获得所需的结果。我希望这是有帮助的。
在使用 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);
你确定你安装了最新版本的 excanvas.js 吗?(2009 年 3 月发布,托管在新的 Google 代码项目页面上)
我在 IE8 和 AFAIK 中使用了 Beauty Tips 插件,它在 IE8 本机模式下工作。
最新的 bt 插件版本为我解决了这个问题。
使用 jquery 将 canvas 标记附加为 html 字符串不适用于新版本的 excanvas。您必须先使用 document.createElement('canvas') 。
如果有人仍然有这个问题: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});
希望能帮助到你。