通过javascript设置占位符文本时,特殊字符无法正常显示。
function myFunction() {
document.getElementById("myText").placeholder = "Événement";
}
<input type="text" id="myText" placeholder="Événement">
<p>Click the button to change the placeholder text of the text field.</p>
<button onclick="myFunction()">Try it</button>
输出为:“&amp;#201; v&amp;#233; nement”
预期产出:“Événement”
寻找一个javascript解决方案,我可以转换包含任何编码字符的任何文本。
答案 0 :(得分:2)
在HTML中,特殊字符使用&#XXX
进行编码(如É
)。
在Javascript中,特殊字符使用\uXXXX
编码(如\u00C9
)
检查https://en.wikipedia.org/wiki/List_of_Unicode_characters以获取转义码列表。
在你的情况下,它将是
document.getElementById("myText").placeholder = "\u00C9v\u00E8nement";
答案 1 :(得分:1)
最直接的转换方法是创建一个元素,将HTML实体设置为innerHTML并获取textConetnt,如下所示:
function myFunction() {
let a = document.createElement('span');
a.innerHTML = 'Événement from JS';
document.getElementById("myText").placeholder = a.textContent;
}
&#13;
<input type="text" id="myText" placeholder="Événement">
<p>Click the button to change the placeholder text of the text field.</p>
<button onclick="myFunction()">Try it</button>
&#13;