1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptで文字列からHTMLタグを取り除くには?[重複している]をクリックします。

2022-05-05 06:59:01

質問

JavaScriptで文字列からHTMLを取り除くにはどうすればよいですか?

どのように解決するのですか?

現在のブラウザでは、ブラウザのパーサーを使用するのがおそらく最善の方法です。以下のようにするとうまくいきますが、以下のような注意点があります。

  • あなたのHTMLは <div> 要素を使用します。に含まれるHTMLは <body> または <html> または <head> タグの中では有効ではありません。 <div> そのため、正しくパースされない可能性があります。
  • textContent (DOM標準プロパティ)と innerText (非標準)プロパティは同一ではありません . 例えば textContent の中にテキストが含まれます。 <script> 要素で、一方 innerText は(ほとんどのブラウザで)使用できません。これは IE <=8 にのみ影響し、主要ブラウザの中で唯一 textContent .
  • HTMLには <script> 要素を使用します。
  • HTMLは null
  • そのHTMLは信頼できるソースから来たものです。これを任意のHTMLで使用すると、信頼されていない任意のJavaScriptを実行することができます。この例は、重複した質問に対するMike Samuelのコメントからです。 <img onerror='alert(\"could run arbitrary JS here\")' src=bogus>

コード

var html = "<p>Some HTML</p>";
var div = document.createElement("div");
div.innerHTML = html;
var text = div.textContent || div.innerText || "";