如何在字符串文字中使用编码的 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™</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}™`
t.innerHTML = str;
console.log(t)
let doc = new DOMParser().parseFromString(str, 'text/html');
t.innerText = doc.body.innerHTML;
console.log(t)
<title></title>
我试图在字符串文字中包含一个 HTML 编码的特殊字符,但它不会在最终文档中呈现为 HTML。
我正在尝试这样做:
const head = {
title: `${ApplicationName} - ${Slogan}™`
}
在上面的代码中,™
部分应该呈现商标符号,如™。但是,当此代码进入 HTML 文档时,它最终呈现为字符串:
<head>
<title>Imaginary Inc - We straight don't exist™</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}™`
t.innerHTML = str;
console.log(t)
let doc = new DOMParser().parseFromString(str, 'text/html');
t.innerText = doc.body.innerHTML;
console.log(t)
<title></title>