为什么在JS中插入特殊字符时不能在DOM中解释

Why special characters don't get interpreted in DOM when inserted with JS?

本文关键字:DOM 不能 解释 插入 JS 为什么 特殊字符      更新时间:2023-09-26

我在页面加载后加载脚本(不是立即加载,只是当用户从bookmarklet调用它时)。这个脚本将检查当前页面,并将一些文本从当前值更改为脚本指定的值。

更具体地说,这是在翻译中使用的。例如,它将"Friends"转换成另一种语言的"Freunden"等等。

我通过使用"switch"语句从所选的语言中进行选择来做到这一点。问题是,我有一些外来语言,比如阿拉伯语,语句看起来像这样(伪代码):

if (Arabic) { var f = 'Друзья'}

然后,使用该变量更改DOM中指定节点的内部文本,如下所示:

dI('change').childNodes[0].childNodes[0].textContent = f;

文本将在DOM中原封不动地显示,所有实体都没有被解释,而不是在其结果语言中应有的方式。我如何使浏览器解释的实体,而传递他们像上面??

使用innerHTML代替textContent,就像您的情况:

dI('change').childNodes[0].childNodes[0].textContent = f;

就变成:

dI('change').childNodes[0].childNodes[0].innerHTML = f;