Skip to content

Commit

Permalink
2024/05/17 時点の英語版に基づき更新
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Sep 29, 2024
1 parent af8b675 commit d4d6802
Showing 1 changed file with 23 additions and 22 deletions.
45 changes: 23 additions & 22 deletions files/ja/web/api/shadowroot/mode/index.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
---
title: ShadowRoot.mode
title: "ShadowRoot: mode プロパティ"
short-title: mode
slug: Web/API/ShadowRoot/mode
l10n:
sourceCommit: 26091e4af9c73bb6c5d1466df5070c949498fdbd
---

{{APIRef("Shadow DOM")}}

**`mode`** は {{domxref("ShadowRoot")}} の読み取り専用プロパティで、モードを `open``closed` のどちらかで示します。これはシャドウルートの内部機能を JavaScript からアクセスできるかどうかを定義します。
**`mode`** は {{domxref("ShadowRoot")}} の読み取り専用プロパティで、モードを `open``closed` のどちらかで示します。
これはシャドウルートの内部機能を JavaScript からアクセスできるかどうかを定義します。

シャドウルートの `mode` が "`closed`" であった場合、シャドウルートの内部的な実装は JavaScript からアクセスできず、変更できなくなります。例えば、 {{HTMLElement("video")}} の内部の実装は JavaScript からアクセスも変更もできないのと同様になります。

## 構文

```js
var mode = shadowRoot.mode;
```
このプロパティ値を設定するには、{{domxref("Element.attachShadow()")}} に渡すオブジェクトの `options.mode` プロパティを使用するか、シャドウルートを宣言的に作成する場合は、[`<template>`](/ja/docs/Web/HTML/Element/template) 要素の [`shadowrootmode`](/ja/docs/Web/HTML/Element/template#shadowrootmode) 属性を使用します。

###

[`ShadowRootMode`](https://dom.spec.whatwg.org/#enumdef-shadowrootmode) 列挙型で定義された値です。 `open``closed` のどちらかです。
次のどちらかの値を取りうる文字列です。

- `open`
- : このシャドウルートの要素は、ルート外の JavaScript からアクセスすることができます。
- `closed`
- : 閉じられたシャドウツリー内のノードは、ルート外の JavaScript でアクセスすることはできません。

##

```js
// アクセスできない closed のシャドウルートを作成します
let element = document.createElement("div");
element.attachShadow({ mode: "closed" });
element.shadowRoot // シャドウルートが closed なので null

// アクセスできる open のシャドウルートを作成します
let element2 = document.createElement("div");
element2.attachShadow({ mode: "open" });
console.log("The shadow is" + element2.shadowRoot.mode) // "The shadow is open" と出力
element2.shadowRoot.innerHTML("
Opened shadow
") // シャドウは open なので、外部からアクセスできます
// アクセスできない closed のシャドウルートを作成します
let element = document.createElement("div");
element.attachShadow({ mode: "closed" });
element.shadowRoot; // シャドウルートが closed なので null

// アクセスできる open のシャドウルートを作成します
let element2 = document.createElement("div");
element2.attachShadow({ mode: "open" });
console.log(`The shadow is ${element2.shadowRoot.mode}`); // "The shadow is open" と出力
element2.shadowRoot.textContent("Opened shadow"); // シャドウは open なので、外部からアクセスできる
```

## 仕様書
Expand Down

0 comments on commit d4d6802

Please sign in to comment.