我曾经在一个名为'BeautyTips'的jQuery插件上工作,它运行得很好。但是,由于我已经安装了IE 8,这个插件停止工作,因为它需要Excanvas来让IE绘制矢量,图像等。
我试图下载更新版本的Excanvas,但它根本不起作用......
答案 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});
希望它有所帮助。