这就是我的html代码的样子:
<html>
<style>
body {
font-size: 18px;
}
</style>
<body>
<span id="tiger" style='font-size:100px;'>💡</span>
<button id="btn">SET TIGER</button>
<script>
document.getElementById('btn').addEventListener('click', function (e) {
document.getElementById('tiger').innerText = `🦁`;
});
</script>
</body>
</html>
但它不起作用,点击按钮时只显示🦁
而不是表情符号。为什么,我如何动态设置表情符号?
HTML Escapes
HTML转义符,如"&128161"在解析源文档时由HTML解析器进行解码。
要设置文本节点的内容,请使用JavaScript字符串——从技术上讲,该字符串是用UTF-16编码的。
JavaScript字符串
如果您知道UTF-16中字符的十六进制表示,则可以使用类似的转义字符串设置文本节点内容
element.textContent = "ud83dudca1"; // not recommended.
如果你知道十六进制或十进制的Unicode值,你可以使用静态字符串fromCodePoint
方法:
element.textContent = String.fromCodePoint( 0x1f4a1) // or
element.textContent = String.fromCodePoint( 128161 )
另一种选择是在JavaScript:中使用带大括号的unicode转义来转义6个十六进制字符的代码
element.textContent = 'u{01f4a1}'; // still not recommended
然而,我建议的方法是在保存时用UTF-8编码HTML文件,并用代码中的标准字符串值设置文本内容:
element.textContent = '💡'
代码编辑器对Unicode字体的有限支持当然会使这项工作变得有点困难。
指定字符编码
如注释中所述,在使用非ASCII字符之前,可以在标题部分的顶部指定HTML文件中使用的字符编码。放置元标签
<meta charset="utf-8">
在打开CCD_ 3标签之后立即实现这一点。
虽然HTML5中的默认编码是"utf-8",但旧移动设备上的浏览器可能仍然需要使用上面的元标记。有关更多详细信息,请参阅三年前的这个问题。
<html>
<style>
body {
font-size: 18px;
}
</style>
<body>
<span id="tiger" style='font-size:100px;'>💡</span>
<button id="btn">SET TIGER</button>
<script>
var code = '129409';
//
document.getElementById('btn').addEventListener('click', function (e) {
document.getElementById('tiger').innerText = String.fromCodePoint(parseInt(code));;
});
</script>
</body>
</html>
请检查以下内容,希望您的查询得到解决。
<html>
<style>
body {
font-size: 18px;
}
</style>
<body>
<span id="tiger" style='font-size:100px;'>💡</span>
<button id="btn">SET TIGER</button>
<script>
var code = '129409';
//
document.getElementById('btn').addEventListener('click', function (e) {
document.getElementById('tiger').innerText = String.fromCodePoint(parseInt(code));;
});
</script>
</body>
</html>