如何在字符串文字中使用编码的 HTML 文本?

How to use encoded HTML text within string literals?

我试图在字符串文字中包含一个 HTML 编码的特殊字符,但它不会在最终文档中呈现为 HTML。

我正在尝试这样做:

const head = { 
title: `${ApplicationName} - ${Slogan}™`
}

在上面的代码中,™ 部分应该呈现商标符号,如™。但是,当此代码进入 HTML 文档时,它最终呈现为字符串:

<head>
  <title>Imaginary Inc - We straight don't exist&trade;</title>
</head>

是否有任何方法让它工作,也许使用某种转义技术?

可以使用字符的unicode来实现,在JavaScript中的字符unicode前加一个反斜杠表示。 (\u2112)

const title = $("title");
title.append("\u2122");

console.log(title.text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<head>
  <title>My Title</title>
</head>

您可以将 innerHTML 或 DOM 解析器与 innerText

一起使用

let t = document.querySelector('title');
let var1 = 'foo', var2 = 'bar'
let str = `${var1} - ${var2}&trade;`
t.innerHTML = str;
console.log(t)

let doc = new DOMParser().parseFromString(str, 'text/html');
t.innerText = doc.body.innerHTML;
console.log(t)
<title></title>