Limited support 一部のブラウザのみ対応。使用時はサポート状況を確認すること。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
99
99
125
99
DOM API

contextlost はキャンバス API のイベントで、 CanvasRenderingContext2D コンテキストに関連付けられたバックストレージが失われたことをユーザーエージェントが検出すると、発行されます。 コンテキストは、ドライバーのクラッシュやアプリケーションのメモリー不足など、いくつかの理由で失われることがあります。

99
99
125
99

contextrestored はキャンバス API のイベtので、ユーザーエージェントが CanvasRenderingContext2D のバッキングストレージを復元した場合に発行されます。

99
99
125
99

contextlost は OffscreenCanvas インターフェイスのイベントで、ブラウザーが OffscreenCanvasRenderingContext2D コンテキストが失われたことを検出すると発行されます。 コンテキストは、関連付けられた GPU ドライバのクラッシュ、アプリケーションのメモリー不足、といった具合に、いくつかの理由で失われることがあります。

99
99
125
99

contextrestored は OffscreenCanvas インターフェイスのイベントで、ブラウザーが前回失われた OffscreenCanvasRenderingContext2D コンテキストを復元した場合に発行されます。

99
99
125
99

CanvasRenderingContext2D.isContextLost() はキャンバス 2D API のメソッドで、この描画コンテキストが失われている場合(そしてリセットされていない場合)に true を返します。 これは、ドライバーのクラッシュやメモリー不足などによって発生することがあります。

99
99
125
99
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
const canvas = document.getElementById('c');
canvas.addEventListener('contextlost', (e) => {
  e.preventDefault(); // Attempt to restore
});
canvas.addEventListener('contextrestored', () => {
  redraw(); // Redraw
});

ライブデモ

Lose and restore

Use the WEBGL_lose_context extension to simulate context loss and restoration.

プレビュー全画面表示

Event log

Record context lifecycle messages in a visible log for debugging.

プレビュー全画面表示

Recovery guidance

Pair the canvas lifecycle with a short checklist for restoring resources.

プレビュー全画面表示

実務での使いどころ

  • contextlost and contextrestored の活用

    CanvasRenderingContext2D.isContextLost() はキャンバス 2D API のメソッドで、この描画コンテキストが失われている場合(そしてリセットされていない場合)に true を返します。

注意点

  • 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。

アクセシビリティ

  • スクリーンリーダーでの読み上げを確認すること。