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

Метод HTMLCanvasElement.getContext() возвращает контекст рисования на холсте, или {{jsxref("null")}}, если идентификатор контекста не определен.

Синтаксис

canvas.getContext(contextType, contextAttributes);

Параметры

contextType
{{domxref("DOMString")}}, содержащий идентификатор контекста, определяющий контекст рисования, связанный с холстом. Возможные значения:

Примечание: Идентификаторы "experimental-webgl" или "experimental-webgl2" используются в новых реализациях WebGL. Эти реализации не достигли испытательного набора на соответствие или ситуация с графическими драйверами на платформе еще не стабильна The Khronos Group certifies WebGL implementations under certain conformance rules.

contextAttributes

Вы можете использовать несколько атрибутов контекста при создании контекста рендеринга, например:

canvas.getContext("webgl",
                 { antialias: false,
                   depth: false });
2d атрибуты контекста: Атрибуты контекста WebGL:

Возвращаемое значение

{{domxref("RenderingContext")}}, который представляет собой

Если contextType не соответствует возможному контексту рисунка, то возвращается null.

Примеры

Given this {{HTMLElement("canvas")}} element:

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

You can get a 2d context of the canvas with the following code:

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

Now you have the 2D rendering context for a canvas and you can draw within it.

Спецификации

Specification Status Comment
{{SpecName('HTML WHATWG', "scripting.html#dom-canvas-getcontext", "HTMLCanvasElement.getContext")}} {{Spec2('HTML WHATWG')}} No change since the latest 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 of the {{SpecName('HTML WHATWG')}} containing the initial definition.

Совместимость браузеров

{{CompatibilityTable}}

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

failIfMajorPerformanceCaveat attribute

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

[1] Chrome 9 and Gecko 1.9.2 initially implemented this as experimental-webgl. Since Chrome 33 and Gecko 24 it is implemented as the standard webgl.

[2] Internet Explorer 11, WebKit 5.1 and Firefox Mobile implemented this as experimental-webgl.

[3] Opera 9 implemented this as 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.

Смотри также