2011-03-15 61 views
35

有什么方法可以获取上下文用于的画布吗?从上下文获取画布

为什么我问的是因为我正在为CanvasRenderingContext2D创建一个原型函数,其中我需要canvas元素的宽度/高度。

例如为:

var cv = document.getElementById('canvas'); 
var ctx = cv.getContext('2d'); 
// Using only 'ctx', how to get 'cv'? 

回答

52

ctx.canvas应该返回画布DOM节点,从中可以得到高度和宽度。

https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage

火狐才得以回到ctx.canvas试了一下,还有ctx.canvas.width和ctx.canvas.height。也在Chrome中得到确认。

+12

这是[部分规格](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-canvas) 。 – Phrogz 2011-03-16 04:06:23

+0

链接腐烂。这就是为什么你不应该只给一个链接,但也总结一下。 – v010dya 2015-05-04 12:28:25

+3

@Volodya - 'ctx.canvas应该返回画布DOM节点* *是摘要。 – 2015-06-24 22:41:23

0

试试这个检查自己:

var canvas = document.createElement('canvas'); 
 
var context = canvas.getContext('2d'); 
 
var isSameObject = canvas === context.canvas; 
 

 
alert(isSameObject 
 
    ? 'context.canvas gives expected result' 
 
    : 'unexpected result');

Here's the above in a jsFiddle