--- title: HTMLCanvasElement.getContext() slug: Web/API/HTMLCanvasElement/getContext translation_of: Web/API/HTMLCanvasElement/getContext ---
{{APIRef("Canvas API")}}

El método HTMLCanvasElement.getContext() retorna un contexto de dibujo en el lienzo, o {{jsxref("null")}} si el identificador del contexto no está soportado.

Sintaxis

canvas.getContext(contextType, contextAttributes);

Parámetros

contextType
Es una  {{domxref("DOMString")}} que contiene el identificador del contexto que define el contexto de dibujo asociado a el lienzo. Los posibles valores son:

Nota: Los identificadores  "experimental-webgl" o "experimental-webgl2" son usados en nuevas implementaciones de WebGL. Estas implementaciones no han logrado aprobar el conjunto de pruebas de conformidad o la situación de los controladores gráficos en la plataforma no es estable aun. Khronos Group certifica las implementaciones de WebGL bajo ciertas reglas de conformidad.

contextAttributes

Puedes usar varios atributos al momento de crear tu contexto de renderizado. Por ejemplo:

canvas.getContext('webgl',
                 { antialias: false,
                   depth: false });
Atributos del contexto 2d: Atributos del contexto WebGL:

Valor de retorno

Un {{domxref("RenderingContext")}} que puede ser:

Si contextType no corresponde con un posible contexto de dibujo retorna null.

Ejemplos

Dado este elemento {{HTMLElement("canvas")}}:

<canvas id="canvas" width="300" height="300"></canvas>

Puedes obtener un contexto 2d del canvas con el código siguiente:

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
console.log(ctx); // CanvasRenderingContext2D { ... }

Ahora tienes el contexto de renderizado 2D para un canvas y puedes dibujar en él.

Especificaciones

Especificación Estado Comentarios
{{SpecName('HTML WHATWG', "scripting.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML WHATWG')}} Sin cambios desde el último snapshot, {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5.1', "scripting-1.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML5.1')}}  
{{SpecName('HTML5 W3C', "scripting-1.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML5 W3C')}} Snapshot del {{SpecName('HTML WHATWG')}} que contiene la definición inicial.

Compatibilidad con navegadores

{{CompatibilityTable}}

Característica Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (2d context) {{CompatChrome(4)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.9.2")}} {{CompatIE(9)}} {{CompatOpera(9)}} {{CompatSafari(3.1)}}
webgl context {{CompatChrome(9)}}[1]
{{CompatChrome(33)}}
{{CompatVersionUnknown}} {{CompatGeckoDesktop('1.9.2')}}[1]
{{CompatGeckoDesktop('24')}}
11.0[2] 9.0[3] 5.1[2]
webgl2 context {{experimental_inline}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop('25')}}[4] {{CompatNo}} {{CompatNo}} {{CompatNo}}
2d alpha context attribute 32 {{CompatUnknown}} {{CompatGeckoDesktop(30)}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}

failIfMajorPerformanceCaveat attribute

{{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoDesktop(41)}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}}
bitmaprenderer context {{CompatNo}} {{CompatUnknown}} {{CompatGeckoDesktop(46)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (2d context) {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("1.9.2")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
webgl context {{CompatUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[2] {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
webgl2 context {{experimental_inline}} {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
2d alpha context attribute {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile(30)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
failIfMajorPerformanceCaveat attribute {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile(41)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
bitmaprenderer context {{CompatNo}} {{CompatNo}} {{CompatUnknown}} {{CompatGeckoMobile(46)}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] Chrome 9 y Gecko 1.9.2 inicialmente implementaron esta como experimental-webgl. A partir de Chrome 33 y Gecko 24 es implementado como webgl estándar.

[2] Internet Explorer 11, WebKit 5.1 y Firefox Mobile implementaron esto como  experimental-webgl.

[3] Opera 9 implementó esto como experimental-webgl, behind a user preference, in version 15.0 the user preference got removed.

[4] Gecko 25 implements this as "experimental-webgl2" behind the user preference webgl.enable-prototype-webgl2. Starting with Gecko 42, the string "webgl2" is used behind the same preference.

See also