2011-03-15 16 views
35

¿Hay alguna forma de obtener el lienzo para el que se utiliza un contexto?Obtener lienzo desde el contexto

Por qué lo estoy preguntando es porque estoy creando una función de prototipo para CanvasRenderingContext2D en la que necesito el ancho/alto del elemento canvas.

ej .:

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

Respuesta

52

ctx.canvas debe devolver el nodo DOM lienzo, desde donde se puede obtener la altura y la anchura.

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

Firefox fue capaz de volver ctx.canvas, así como ctx.canvas.width y ctx.canvas.height. También confirmado en Chrome.

+12

Esto es [parte de las especificaciones] (http://www.whatwg.org/specs/web-apps/current-work/multipage/the- canvas-element.html#dom-context-2d-canvas) . – Phrogz

+0

link rot. Esta es la razón por la cual no solo debes dar un enlace, sino también resumirlo. – v010dya

+3

@Volodya - 'ctx.canvas debe devolver el lienzo DOM nodo' * es * el resumen. –

0

Prueba esto a comprobar por sí mismo:

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.

Cuestiones relacionadas