0

我有一个画布元素:

<canvas  id="canvas" width="300" height="300"> 
   Canvas not supported
</canvas> 

.js 文件中的代码:

var ct= document.getElementById('canvas');
var ctx = document.getElementById('canvas').getContext('2d');

但是当我在旧版本的 IE 中加载它时,它会触发一个getContext不支持该方法的异常。

我想做的是写这样的东西:

if (!ctx.getContext) ctx = { getContext: function () { } };

摆脱 IE 中的异常。我应该怎么办?

4

1 回答 1

0

你的情况结构很糟糕,很难看出你的计划是什么——你getContext()每次打电话时都要检查一下返回什么吗?为什么不首先检查它是否存在

var ct= document.getElementById('canvas');
if ('getContext' in ct) {
    var ctx = ct.getContext('2d');
    //Rest of code
}

或者尝试这个问题的答案之一,或者使用Modernizr来满足您的所有特征检测需求。

于 2013-08-16T14:21:18.553 回答