---
title: Element.setHTML()
slug: Web/API/Element/setHTML
tags:
- HTML 無害化 API
- メソッド
- Element.setHTML
- setHTML
- 実験的
browser-compat: api.Element.setHTML
translation_of: Web/API/Element/setHTML
---
{{SeeCompatTable}}{{DefaultAPISidebar("HTML Sanitizer API")}}
**`setHTML()`** は {{domxref("Element")}} インターフェイスのメソッドで、 HTML の文字列を解釈して無害化し、この要素のサブツリーとして DOM に挿入します。
信頼できない HTML の文字列を挿入するために、 {{domxref("Element.innerHTML")}} の代わりに使用してください。
解釈処理では、現在の要素のコンテキストで無効な HTML 文字列の要素を削除し、無害化処理では、安全でない、あるいは不要な要素、属性、コメントを削除します。
既定の `Sanitizer()` 設定では、{{HTMLElement("script")}} タグ、カスタム要素、コメントを含む XSS 関連の入力が取り除かれます。
無害化の設定は {{domxref("Sanitizer.Sanitizer", "Sanitizer()")}} コンストラクターのオプションを使用してカスタマイズすることができます。
> **Note:** 対象となる要素がまだない場合など、後の時点で DOM に文字列を挿入する必要がある場合は、このメソッドの代わりに {{domxref("Sanitizer.sanitizeFor()")}} を使用してください。
## 構文
```js
setHTML(input, sanitizer)
```
### 引数
- `input`
- : 無害化する HTML を定義する文字列です。
- `sanitizer`
- : {{domxref("Sanitizer")}} で、入力されたどの要素を無害化するかを定義します。
### 返値
`undefined`
### 例外
なし。
## 例
以下のコードは、 HTML の文字列を無害化して、 id が `target` である `Element` に挿入する方法を示しています。
```js
const unsanitized_string = "abc def"; // 無害化前の HTML の文字列
const sanitizer = new Sanitizer(); // 既定の無害化
// id が "target" の Element を取得し、無害化された文字列を設定します。
document.getElementById("target").setHTML(unsanitized_string, sanitizer);
// 結果 (文字列): "abc def"
```
> **Note:** この例では既定の無害化を使用しています。
> {{domxref("Sanitizer/Sanitizer","Sanitizer")}} コンストラクターで無害化のオプションを構成することができます。
## 仕様書
{{Specifications}}
## ブラウザーの互換性
{{Compat}}
## 関連情報
- {{domxref("Sanitizer.sanitizeFor()")}}
- {{domxref('HTML Sanitizer API')}}