在IE下动态创建canvas使用excanvas时失效解决方法

excanvas用来支持ie6使用canvas画布。(现在叫explorercanvas) 引入excanvas.js以后,在ie下,文档中的canvas就可以用了,但是如果是通过createElement方法创建的就不行了

var canvas=document.createElement(”canvas”);
if(canvas.getContext){
alert(”support getContext()”);
}

因为加载并执行excanvas.js这个脚本代码的时候,G_vmlCanvasManager_.init();这句语句遍历了页面中所有的canvas元素,然后初始化这些元素。
由于js的函数中,如果一个变量不通过var来定义,那么就会把这个变量当作一个全局变量。

网上找到的方法一

这个方法单独对某个canvas初始化,注意是文档加载完成后才操作。

$(function(){
var canvas=document.createElement(”canvas”);
document.body.appendChild(canvas);
if($.browser.msie){
    canvas=window.G_vmlCanvasManager.initElement(canvas);
}
if(canvas.getContext){alert(”support”);}
});

方法二

第二种方法对整个document再初始化一次。

var canvas=document.createElement(”canvas”);
document.body.appendChild(canvas);
if($.browser.msie){
    G_vmlCanvasManager.init_(document);
}
if(canvas.getContext){alert(”support”);}
});

另外发现Canvas这玩意挺好玩的~~推荐一个中文教程:canvas中文教程

updatedupdated2023-12-062023-12-06