Html 检测画布是否已具有上下文
给定Html 检测画布是否已具有上下文,html,canvas,webgl,Html,Canvas,Webgl,给定画布,是否可以: 检测它是否已经有关联的2d或webgl上下文,而不调用getContext 或者在调用getContext时,确定返回的上下文是新创建的还是预先存在的 没有任何公开的文档化方法来检测从canvas元素请求了什么上下文。元素本身只是最终位图,不知道像素是如何进入的 我知道的唯一方法是破解getContext()调用以记录所请求的上下文(或者只制作一个您调用的普通包装函数而不是本机调用): //存储旧调用 HTMLCanvasElement.prototype.\u get
画布
,是否可以:
- 检测它是否已经有关联的
或2d
上下文,而不调用webgl
getContext
- 或者在调用
时,确定返回的上下文是新创建的还是预先存在的getContext
getContext()
调用以记录所请求的上下文(或者只制作一个您调用的普通包装函数而不是本机调用):
//存储旧调用
HTMLCanvasElement.prototype.\u getContext=HTMLCanvasElement.prototype.getContext;
//存储类型(如果需要)
HtmlCanvaElement.prototype.\u contextType=null;
//允许注册类型的旧调用的包装器
HTMLCanvasElement.prototype.getContext=函数(类型){
此._contextType=type;
返回此。\u getContext(类型);
};
//检查是否有上下文
HTMLCanvasElement.prototype.hasContext=函数(){
返回此。\u contextType;
};
//----------------------------------------------------------
//测试:
var canvas=document.getElementById('canvas'),
ctx;
out.innerHTML++=canvas.hasContext()++'
';
//->空的
ctx=canvas.getContext('2d');
out.innerHTML+=canvas.hasContext();
//->2d
用例: