canvas教程

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

字号+ 作者:H5之家 来源:H5之家 2017-08-22 15:04 我要评论( )

记性不好,记下来给自己看。

excanvas用来支持ie6使用canvas画布。(现在叫explorercanvas)

引入excanvas.js以后,在ie下,文档中的canvas就可以用了,但是如果是通过createElement方法创建的就不行了

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

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”);} });

$(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”);} });

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

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

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • [求助]请教如何将IMAGE.CANVAS画布上的东西一次性清除掉

    [求助]请教如何将IMAGE.CANVAS画布上的东西一次性清除掉

    2017-08-22 16:02

  • touchweb手机网站图片加载方法(canvas加载和延迟加载)

    touchweb手机网站图片加载方法(canvas加载和延迟加载)

    2017-08-22 15:04

  • Canvas文本操作

    Canvas文本操作

    2017-08-22 09:02

  • html5 canvas中设置requestAnimationFrame帧速的方法

    html5 canvas中设置requestAnimationFrame帧速的方法

    2017-08-22 08:02

网友点评