recursal/MDN huggingface dataset:
BluetoothRemoteGATTServer: getPrimaryServices() メソッド
====================================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**BluetoothRemoteGATTServer.getPrimaryServices()** メソッドは、Bluetooth デバイスが提供している指定の `BluetoothServiceUUID` に対応するプライマリー `BluetoothRemoteGATTService` オブジェクトのリストで解決するプロミスを返します。

構文
--


```js
getPrimaryServices(bluetoothServiceUUID)
```

### 引数

`bluetoothServiceUUID`

指定のデバイス用の Bluetooth サービス universally unique identifier です。

### 返値

`BluetoothRemoteGATTService` オブジェクトのリストで解決する `Promise` です。

仕様書
---

| Specification |
| --- |
| Web Bluetooth # dom-bluetoothremotegattserver-getprimaryservices |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BluetoothRemoteGATTServer: disconnect() メソッド
============================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`BluetoothRemoteGATTServer.disconnect()`** メソッドは、このスクリプト実行環境を `this.device` から切断させます。

構文
--


```js
disconnect()
```

### 引数

なし

### 返値

なし (`undefined`)

仕様書
---

| Specification |
| --- |
| Web Bluetooth # dom-bluetoothremotegattserver-disconnect |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BluetoothRemoteGATTServer: device プロパティ
=======================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

読み取り専用プロパティ **`BluetoothRemoteGATTServer.device`** は、このサーバーを動かしている `BluetoothDevice` への参照を返します。

値
-

`BluetoothDevice` への参照です。

仕様書
---

| Specification |
| --- |
| Web Bluetooth # dom-bluetoothremotegattserver-device |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BluetoothRemoteGATTServer: connect() メソッド
=========================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`BluetoothRemoteGATTServer.connect()`** メソッドは、このスクリプト実行環境を `this.device` に接続させます。

構文
--


```js
connect()
```

### 引数

なし

### 返値

`BluetoothRemoteGATTServer` で解決する `Promise` です。

仕様書
---

| Specification |
| --- |
| Web Bluetooth # dom-bluetoothremotegattserver-connect |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
MutationObserver.MutationObserver()
===================================

**MutationObserver()** コンストラクタ (`MutationObserver` インターフェースの一部) は、指定されたコールバックを DOM イベントが発生したときに実行するオブザーバを作成して返します。DOM の監視はすぐに開始されるわけではありません。最初に `observe()` メソッドを呼び出し、DOM のどの部分を監視し、どのような変更を監視するかを決めなければなりません。

構文
--
```

var observer = new MutationObserver(callback);
```

### 引数

`callback`

対象となるノードやサブツリー、および指定されたオプションの条件を満たす DOM の変更が起きるたびに呼び出される関数。このコールバック関数は、２つの引数を受け取ります。発生したそれぞれの変更を記述した `MutationRecord` オブジェクトの配列、そしてコールバックを実行した `MutationObserver` です。詳細については、以下の例を参照してください。

### 戻り値

指定されたコールバックを DOM の変更が発生したときに呼び出すように設定された `MutationObserver` オブジェクト。

例
-

この例では、ノードとそのすべての子において、ツリーへの要素の追加と削除、およびツリー内の要素の属性の変更を監視するように設定された MutationObserver を作成します。

### コールバック関数


```js
function callback(mutationList, observer) {
  mutationList.forEach((mutation) => {
    switch (mutation.type) {
      case "childList":
        /\* ツリーに１つ以上の子が追加されたか、ツリーから削除された。
 mutation.addedNodes と mutation.removedNodes を参照。 \*/
        break;
      case "attributes":
        /\* Mutation.target の要素の属性値が変更された。
 属性名は mutation.attributeName にあり、
 以前の値は mutation.oldValue にある。 \*/
        break;
    }
  });
}
```


callback() 関数は、`observe()` を呼び出して DOM の監視を開始するときに指定された監視リクエストの設定と一致する変更をオブザーバが確認したときに実行されます。

発生した変更の種類 (子のリストの変更または属性の変更のいずれか) は、`mutation.type` (en-US) プロパティを調べることによって判明します。

### オブザーバの作成と開始

このコードでは、実際に監視プロセスを設定します。


```js
var targetNode = document.querySelector("#someElement");
var observerOptions = {
  childList: true,
  attributes: true,
  subtree: true, // 省略するか、false に設定すると、親ノードへの変更のみを監視する。
};

var observer = new MutationObserver(callback);
observer.observe(targetNode, observerOptions);
```


目的のサブツリーは、ID が "someElement" の要素を検索することで見つかります。オブザーバのオプションのセットは、observerOptions のレコードで設定します。この中で、childList と attributes の両方に true の値を指定することで、目的の情報を得ることができます。

そして、callback() 関数を指定して observer をインスタンス化し、対象のノードとオプションのレコードを指定して observe() を呼び出すことで、対象の DOM ノードの監視を開始します。

この時点から `disconnect()` が呼び出されるまで、targetNode をルートとする DOM ツリーに要素が追加されたり削除されたり、あるいは要素の属性が変更されるたびに `callback()` が呼び出されます。

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-mutationobserver-mutationobserver① |

各ブラウザの対応状況
----------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
MutationObserver.observe()
==========================

`MutationObserver` の **`observe()`** メソッドは、`MutationObserver` コールバックを設定し、与えられたオプションに適合する DOM への変更の通知の受信を開始します。設定によっては、オブザーバーは DOM ツリー内の単一の `ノード` を監視したり、そのノードとその子孫ノードの一部またはすべてを監視したりします。

`MutationObserver` を停止するには、`MutationObserver.disconnect()` を呼び出してください。(これにより、そのコールバックはそれ以降発生しなくなります。)

構文
--
```

mutationObserver.observe(target, options)
```

### 引数

`target`

DOM ツリー内で変更を監視したり、監視するノードのサブツリーのルートになったりする DOM`ノード` (あるいは、`要素`である可能性もあります。)

`options`

どの DOM の変更を`mutationObserver`の`callback`に報告するかを記述するオプションを提供する、`MutationObserverInit` (en-US)オブジェクト。

### 戻り値

`undefined`

### 例外

`TypeError`

以下のいずれかの状況でスローされます。

* 実際には何も監視されないように`options`が設定されている場合。
 (例えば、 `MutationObserverInit.childList` (en-US)、 `MutationObserverInit.attributes` (en-US)、`MutationObserverInit.characterData` (en-US) が全て`false`の場合)
* `options.attributes` の値が `false` (これは属性の変更を監視しないことを示す)であるにも関わらず、`attributeOldValue` は `true` であるか、または、`attributeFilter` が存在する場合。
* `characterDataOldValue` は `true` であるにも関わらず、 `MutationObserverInit.characterData` (en-US) が `false` (これは、文字の変更を監視しないことを示す)である場合。

使用における注意点
---------

### MutationObserver の再利用

同一の `MutationObserver` で、`observe()` を複数回呼び出すことで、DOM ツリーの異なる部分や異なる種類の変更を監視することができます。ただし、注意すべき点がいくつかあります。

* 同じ`MutationObserver`で既に監視されているノードで`observe()`を呼び出すと、新しいオブザーバーがアクティブになる前に、監視されているすべてのターゲットから既存のすべてのオブザーバーが自動的に削除されます。
* 同じ`MutationObserver`がターゲットで使用されていない場合は、既存のオブザーバーを残して新しいオブザーバーを追加します。
### ノードの切り離しが行われた際の監視の追従

MutationObserver は、ノード間の直接接続が切断されても、時間の経過とともに目的のノードセットを監視できるようにすることを目的としています。ノードのサブツリーの監視を開始し、そのサブツリーの一部が切り離されて DOM 内の別の場所に移動した場合、切り離されたノードのセグメントを監視し続け、元のサブツリーからノードが切り離される前と同じコールバックを受け取ります。

つまり、監視しているサブツリーからノードが切り離されたことが通知されるまでは、切り離されたサブツリーとそのノードへの変更の通知を受けます。これにより、接続が切断された後、移動したノードやサブツリーの変更を監視し始める前に発生した変更を見逃してしまうことを防ぐことができます。

理論的には、発生した変更を記述した `MutationRecord` オブジェクトを追跡していれば、変更を「元に戻す」ことができ、DOM を初期状態に戻すことができるはずです。

例
-

この例では、`MutationObserver` のインスタンス上で **`observe()`** メソッドを呼び出す方法を示します。一度設定したら、ターゲット要素と `MutationObserverInit` (en-US) オプションオブジェクトを渡します。


```js
// identify an element to observe
const elementToObserve = document.querySelector("#targetElementId");

// create a new instance of `MutationObserver` named `observer`,
// passing it a callback function
const observer = new MutationObserver(function () {
  console.log("callback that runs when observer is triggered");
});

// call `observe()` on that MutationObserver instance,
// passing it the element to observe, and the options object
observer.observe(elementToObserve, { subtree: true, childList: true });
```

仕様
--

| Specification |
| --- |
| DOM Standard # ref-for-dom-mutationobserver-observe② |

ブラウザ互換性
-------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
MutationObserver.takeRecords()
==============================

`MutationObserver` の **`takeRecords()`** メソッドは、検出されたがオブザーバのコールバック関数で処理されていない DOM の変更に一致するすべてのリストを返し、変更キューは空のままにします。 最も一般的な使用例は、オブザーバを切断する直前に保留中の変更記録をすべて取得し、オブザーバを停止する際に保留中の変更を処理できるようにすることです。

構文
--
```

const mutationRecords = mutationObserver.takeRecords()
```

### 引数

なし

### 戻り値

`MutationRecord` オブジェクトの配列で、そのそれぞれがドキュメントの DOM ツリーの監視された部分に適用された変更を記述します。

**メモ:** 発生したものの、オブザーバーのコールバックに伝えられなかった変更キューは、 `takeRecords()`をコールした後は空のままになります。

例
-

この例では、オブザーバを切断する直前に `takeRecords()`を呼び出して、未伝達の`MutationRecord`を処理する方法を示します。


```js
const targetNode = document.querySelector("#someElement");
const observerOptions = {
  childList: true,
  attributes: true,
};

const observer = new MutationObserver(callback);
observer.observe(targetNode, observerOptions);

/\* ...later, when it's time to stop observing... \*/

/\* handle any still-pending mutations \*/

let mutations = observer.takeRecords();

observer.disconnect();

if (mutations) {
  callback(mutations);
}
```


12-17 行目のコードは、処理されていない変更の記録を取得し、その記録を処理できるようにコールバックを呼び出します。これは、`disconnect()` を呼び出して DOM の観測を停止する直前に行われます。

仕様
--

| Specification |
| --- |
| DOM Standard # ref-for-dom-mutationobserver-takerecords① |

ブラウザ互換性
-------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
MutationObserver.disconnect()
=============================

`MutationObserver` の **`disconnect()`** メソッドは、オブザーバーに変更の監視を停止させます。 オブザーバーは、 `observe()` メソッドを再度呼び出すことで再利用できます。

構文
--
```

mutationObserver.disconnect()
```

### 引数

なし

### 戻り値

`undefined`

**メモ:** すでに検知されているものの、まだオブザーバーに報告されていない変更の通知は、すべて破棄されます。

使用における注意点
---------

監視されている要素が DOM から削除され、その後ブラウザのガベージコレクション機構によって解放された場合、`MutationObserver` も同様に削除されます。

例
-

この例では、オブザーバを作成してから切断し、再利用できるようにします。


```js
const targetNode = document.querySelector("#someElement");
const observerOptions = {
  childList: true,
  attributes: true,
};

const observer = new MutationObserver(callback);
observer.observe(targetNode, observerOptions);

/\* some time later... \*/

observer.disconnect();
```

仕様
--

| Specification |
| --- |
| DOM Standard # ref-for-dom-mutationobserver-disconnect① |

ブラウザ互換性
-------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Storage: setItem() メソッド
=======================

**`setItem()`** は `Storage` インターフェイスのメソッドで、キーの名前と値を `Storage` オブジェクトに渡すと、ストレージにキーを追加したり、またはキーがすでに存在する場合はキーに対する値を更新したりします。

構文
--


```js
setItem(keyName, keyValue)
```

### 引数

`keyName`

作成または更新したいキーの名前を持つ文字列です。

`keyValue`

作成または更新したいキーに対して渡したい値を持つ文字列です。

### 返値

なし (`undefined`)。

### 例外

`setItem()` は、ストレージが満杯である場合に例外が発生します。開発者は、**`setItem()` で発生する可能性がある例外を常に捕捉する**ようにしてください。

例
-

以下の関数はローカルストレージに 3 個のデータアイテムを作成します。


```js
function populateStorage() {
  localStorage.setItem("bgcolor", "red");
  localStorage.setItem("font", "Helvetica");
  localStorage.setItem("image", "myCat.png");
}
```


**メモ:** 現実世界のの例として、Web Storage Demo をご覧ください。

`Storage` は文字列の格納と取り出しにのみ対応しています。他にもデータ型を保存したい場合は、文字列に変換する必要があります。プレーンなオブジェクトや配列の場合は `JSON.stringify()` を使用します。


```js
const person = { name: "Alex" };
localStorage.setItem("user", person);
console.log(localStorage.getItem("user")); // "[object Object]"; not useful!
localStorage.setItem("user", JSON.stringify(person));
console.log(JSON.parse(localStorage.getItem("user"))); // { name: "Alex" }
```


しかし、任意のデータ型を格納するために汎用的な方法はありません。さらに、取得されたオブジェクトは元オブジェクトのディープコピーであり、それに対する変更は元オブジェクトには影響しません。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-setitem-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Storage.getItem()
* Storage.removeItem()
* ウェブストレージ API の使用
Storage: key() メソッド
===================

**`key()`** は `Storage` インターフェイスのメソッドで、数値 n を渡すと、指定された `Storage` 内で n 番目のキーの名称を返します。キーの順序はユーザエージェント依存であり、この順序に頼るべきではありません。

構文
--


```js
key(index)
```

### 引数

`index`

名称を取得したいキーの番号を表す整数。これは 0 から始まるインデックスです。

### 返値

キーの名前を持つ文字列です。該当のインデックスが存在しない場合は `null` が返ります。

例
-

以下の関数は、ローカルストレージのキー全体に対して反復処理を行います。


```js
function forEachKey(callback) {
  for (let i = 0; i < localStorage.length; i++) {
    callback(localStorage.key(i));
  }
}
```


以下の関数は、ローカルストレージのキーを反復処理し、各キーに設定された値を取得します。


```js
for (let i = 0; i < localStorage.length; i++) {
  console.log(localStorage.getItem(localStorage.key(i)));
}
```


**メモ:** 現実世界のの例として、Web Storage Demo をご覧ください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-key-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブストレージ API の使用
Storage: getItem() メソッド
=======================

**`getItem()`** は `Storage` インターフェイスのメソッドで、キーの名称を渡すと、そのキーに対する値を返します。指定された `Storage` オブジェクトにそのキーが存在しない場合は `null` を返します。

構文
--


```js
getItem(keyName)
```

### 引数

`keyName`

文字列で、値を取り出したいキーの名前を指定します。

### 返値

キーに対する値を持つ文字列です。キーが存在しない場合は `null` が返ります。

例
-

以下の関数はローカルストレージから 3 個のデータアイテムを取り出して、その値を使用してページのカスタムスタイルを設定します。


```js
function setStyles() {
  const currentColor = localStorage.getItem("bgcolor");
  const currentFont = localStorage.getItem("font");
  const currentImage = localStorage.getItem("image");

  document.getElementById("bgcolor").value = currentColor;
  document.getElementById("font").value = currentFont;
  document.getElementById("image").value = currentImage;

  htmlElem.style.backgroundColor = `#${currentColor}`;
  pElem.style.fontFamily = currentFont;
  imgElem.setAttribute("src", currentImage);
}
```


**メモ:** 現実世界の例として、Web Storage Demo をご覧ください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-getitem-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Storage.setItem()
* ウェブストレージ API の使用
Storage: removeItem() メソッド
==========================

**`removeItem()`** は `Storage` インターフェイスのメソッドは、キーの名前を渡すと、指定された `Storage` からキーを削除します。
 **`Storage`** はウェブストレージ API のインターフェイスで、特定のドメインのセッションストレージまたはローカルストレージへのアクセス機能を提供します。

指定されたキーに関連するアイテムがない場合、このメソッドは何もしません。

構文
--


```js
removeItem(keyName)
```

### 引数

`keyName`

削除したいキーの名前を持つ文字列です。

### 返値

なし (`undefined`)。

例
-

以下の関数はローカルストレージに 3 個のデータ項目を作成した後、データ項目 `image` を削除します。


```js
function populateStorage() {
  localStorage.setItem("bgcolor", "red");
  localStorage.setItem("font", "Helvetica");
  localStorage.setItem("image", "myCat.png");

  localStorage.removeItem("image");
}
```


セッションストレージについても同じことができます。


```js
function populateStorage() {
  sessionStorage.setItem("bgcolor", "red");
  sessionStorage.setItem("font", "Helvetica");
  sessionStorage.setItem("image", "myCat.png");

  sessionStorage.removeItem("image");
}
```


**メモ:** 現実世界のの例として、Web Storage Demo をご覧ください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-removeitem-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブストレージ API の使用
Storage: clear() メソッド
=====================

**`clear()`** は `Storage` インターフェイスのメソッドで、指定された `Storage` オブジェクトに格納されているすべてのキーを消去します。

構文
--


```js
clear()
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-

以下の関数はローカルストレージに 3 個のデータアイテムを作成した後、 `clear()` を使用してすべて削除します。


```js
function populateStorage() {
  localStorage.setItem("bgcolor", "red");
  localStorage.setItem("font", "Helvetica");
  localStorage.setItem("image", "miGato.png");

  localStorage.clear();
}
```


**メモ:** 現実世界の例としては、 Web Storage Demo をご覧ください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-clear-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブストレージ API の使用
Storage: length プロパティ
=====================

**`length`** は `Storage` インターフェイスの読み取り専用プロパティで、`Storage` オブジェクトに保存されているデータアイテムの数を表す整数を返します。

値
-

`Storage` オブジェクトに格納されているアイテムの数です。

例
-

以下の関数は現在のドメインのローカルストレージに 3 個のデータアイテムを追加して、ストレージ内のアイテムの数を返します。


```js
function populateStorage() {
  localStorage.setItem("bgcolor", "yellow");
  localStorage.setItem("font", "Helvetica");
  localStorage.setItem("image", "cats.png");

  return localStorage.length; // 3 を返す
}
```


**メモ:** 現実世界の例として、 Web Storage Demo をご覧ください。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-storage-length-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブストレージ API の使用
DocumentType: replaceWith() メソッド
================================

**`DocumentType.replaceWith()`** メソッドは、文書型宣言を指定されたノードで置き換えます。

構文
--


```js
replaceWith(node1)
replaceWith(node1, node2)
replaceWith(node1, node2, /\* … ,\*/ nodeN)
```

### 引数

`node1`, …, `nodeN`

この `DocumentType` を置き換える一連のノードです。

### 返値

なし (`undefined`)。

### 例外

`HierarchyRequestError` `DOMException`

ノードが階層内の指定された位置に挿入できない場合に発生します。

例
-

### `replaceWith()` の使用


```js
let svg_dt = document.implementation.createDocumentType(
  "svg:svg",
  "-//W3C//DTD SVG 1.1//EN",
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd",
);

document.doctype.replaceWith(svg_dt);
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-childnode-replacewith① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Element.replaceWith()`
DocumentType: before() メソッド
===========================

The **`DocumentType.before()`** 一連の `Node` オブジェクトまたは文字列を、この `DocumentType` の親ノードの子リストの、この `DocumentType` の直前に挿入します。文字列は等価な `Text` ノードとして挿入されます。

構文
--


```js
before(param1)
before(param1, param2)
before(param1, param2, /\* … ,\*/ paramN)
```

### 引数

`param1`, …, `paramN`

挿入する一連の `Node` オブジェクト、または文字列です。

### 返値

なし (`undefined`)。

### 例外

`HierarchyRequestError` `DOMException`

ノードが階層内の指定の位置に挿入できなかった場合に発生します。

例
-

### 条件付きコメントの追加

コメントノードは doctype 宣言の前でも有効ですが、 IE で互換モードになることを考えるとお勧めできません。条件付きコメントは IE で有効です。


```js
let docType = document.implementation.createDocumentType("html", "", "");
let myDoc = document.implementation.createDocument("", "", docType);

docType.before(
  document.createComment("<!--[if !IE]> conditional comment <![endif]-->"),
);

myDoc.childNodes;
// NodeList [<!--[if !IE]> conditional comment <![endif]-->, <!DOCTYPE html>]
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-childnode-before① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DocumentType.after()`
DocumentType: systemId プロパティ
============================

**`systemId`** は `DocumentType` の読み取り専用プロパティで、returns the URL of the associated DTD.

合成された `DocumentType` の場合、このプロパティは `DOMImplementation.createDocumentType()` の引数で指定された値を反映します。

HTML 文書の場合、ソースコード内にある実際の `DOCTYPE` が何であろうと、ブラウザーは常に `html` に設定します。例えば、SVG 文書では、 `"http://www.w3.org/2000/svg"` のようになります。

値
-

文字列です。

例
-


```js
const docType = document.implementation.createDocumentType(
  "svg",
  "",
  "http://www.w3.org/2000/svg",
);

console.log(docType.publicId); // "http://www.w3.org/2000/svg" と表示
```

仕様書
---

| Specification |
| --- |
| DOM Standard # dom-documenttype-systemid |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DocumentType: after() メソッド
==========================

**`DocumentType.after()`** は、一連の `Node` オブジェクトまたは文字列を、この `DocumentType` の親ノードの子リストの、この `DocumentType` の直後に挿入します。文字列は等価な `Text` ノードとして挿入されます。

構文
--


```js
after(param1)
after(param1, param2)
after(param1, param2, /\* … ,\*/ paramN)
```

### 引数

`param1`, …, `paramN`

挿入する一連の `Node` オブジェクト、または文字列です。

### 返値

なし (`undefined`)。

### 例外

`HierarchyRequestError` `DOMException`

ノードが階層内の指定の位置に挿入できなかった場合に発生します。

例
-


```js
let docType = document.implementation.createDocumentType("html", "", "");
let myDoc = document.implementation.createDocument("", "", docType);

docType.after(document.createElement("html"));

myDoc.childNodes;
// NodeList [<!DOCTYPE html>, <html>]
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-childnode-after① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DocumentType.before()`
DocumentType: name プロパティ
========================

**`name`** は `DocumentType` の読み取り専用プロパティで、文書の型を返します。

合成された `DocumentType` の場合、このプロパティは `DOMImplementation.createDocumentType()` の引数で指定された値を反映します。

HTML 文書の場合、ソースコード内の実際の `DOCTYPE` が何であろうと、ブラウザーは常に `html` に設定します。

値
-

文字列です。

例
-


```js
const docType = document.implementation.createDocumentType("html", "", "");

console.log(docType.name); // `html` と表示
```

仕様書
---

| Specification |
| --- |
| DOM Standard # dom-documenttype-name |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DocumentType: publicId プロパティ
============================

**`publicId`** は `DocumentType` の読み取り専用プロパティで、文書の正式な識別子を返します。

合成された `DocumentType` の場合、このプロパティは `DOMImplementation.createDocumentType()` の引数で指定された値を反映します。

HTML 文書の場合、ソースコード内にある実際の `DOCTYPE` が何であろうと、ブラウザーは常に `html` に設定します。例えば、SVG 文書では、 `"-//W3C//DTD SVG 1.1//EN"` のようになります。

値
-

文字列です。

例
-


```js
const docType = document.implementation.createDocumentType(
  "svg",
  "-//W3C//DTD SVG 1.1//EN",
  "http://www.w3.org/2000/svg",
);

console.log(docType.publicId); // "-//W3C//DTD SVG 1.1//EN" と表示
```

仕様書
---

| Specification |
| --- |
| DOM Standard # dom-documenttype-publicid |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DocumentType: remove() メソッド
===========================

**`DocumentType.remove()`** は文書の文書型宣言 (`doctype`) を削除します。

構文
--


```js
remove()
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-

### `remove()` の使用


```js
document.doctype; // "<!DOCTYPE html>'
document.doctype.remove();
document.doctype; // null
```

仕様書
---

| Specification |
| --- |
| DOM Standard # ref-for-dom-childnode-remove① |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Document.doctype`
HTMLAnchorElement: referrerPolicy プロパティ
=======================================

**`HTMLAnchorElement.referrerPolicy`** プロパティは、リソースの取得時に送信されるリファラーを定義する `<a>` 要素の HTML `referrerpolicy` 属性を反映します。

値
-

文字列で、以下のうちの一つです。

`no-referrer`

`Referer` ヘッダーは完全に省略されます。リクエストと共に送信されるリファラー情報はありません。

`no-referrer-when-downgrade`

プロトコルのセキュリティレベルが変わらない場合（例: HTTP→HTTP、HTTPS→HTTPS）にはリファラーとして URL を送信し、セキュリティレベルの低い宛先（例: HTTPS→HTTP）には送信しません。

`origin`

 どのような場合でも、この文書のオリジンだけをリファラーとして送信します。
 文書 `https://example.com/page.html` はリファラーとして `https://example.com/` を送ります。


`origin-when-cross-origin`

同一オリジンリクエストを行う場合は完全な URL を送信し、それ以外の場合は文書のオリジンのみを送信します。

`same-origin`

リファラーは同一サイトオリジンには送信されますが、オリジン間リクエストではリファラー情報が送信されません。

`strict-origin`

プロトコルのセキュリティレベルが変わらない場合（例: HTTPS→HTTPS）だけ、文書のオリジンをリファラーとして送信し、セキュリティレベルの低い宛先（例: HTTPS→HTTP）には送信しないようにします。

`strict-origin-when-cross-origin` (default)

これは、ポリシーが指定されていない場合のユーザーエージェントの既定の動作です。同一オリジンリクエストを行う場合は完全な URL を送信し、プロトコルのセキュリティレベルが変わらない場合はオリジンのみを送信し（例: HTTPS→HTTPS）、セキュリティレベルの低い宛先にはヘッダーを送信しません（例: HTTPS→HTTP）。

`unsafe-url`

 同一オリジンまたはオリジン間リクエストを実行するときに、完全な URL を送信します。このポリシーは、 TLS で保護されたリソースから安全でないオリジンへのオリジンとパスを漏洩します。
 この設定の影響を慎重に検討してください。


例
-


```js
const elt = document.createElement("a");
const linkText = document.createTextNode("My link");
elt.appendChild(linkText);
elt.href = "https://developer.mozilla.org/en-US/";
elt.referrerPolicy = "no-referrer";

const div = document.getElementById("divAround");
div.appendChild(elt); // クリックしても、リンクはリファラーのヘッダーを送信しません。
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-a-referrerpolicy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `HTMLImageElement.referrerPolicy`,
 `HTMLAreaElement.referrerPolicy`,
 `HTMLIFrameElement.referrerPolicy`
HTMLAnchorElement: pathname プロパティ
=================================

**`HTMLAnchorElement.pathname`** プロパティは、最初の `'/'` とその後に続く URL のパスが入った文字列（または、パスがない場合は空の文字列）です。

値
-

文字列です。

例
-


```js
// <a id="myAnchor" href="/ja/docs/HTMLAnchorElement"> 要素が文書にあったとします
const anchor = document.getElementById("myAnchor");
anchor.pathname; // '/ja/docs/HTMLAnchorElement' を返す
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-hyperlink-pathname-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* 所属先の `HTMLAnchorElement` インターフェイス