javascript - 如何防止HTML textarea转换>等特殊符号?

标签 javascript html

<分区>

HTML <textarea>环境转换表示特殊符号的字符序列,例如

&gt;

进入相应的符号:

>

但是,我正在尝试构建一个代码编辑器,它应该以逐字逐句的方式接受用户输入。问题是如果用户键入 &gt;进入编辑器并编译代码,<textarea>重新加载,并在此过程中转换字符。

这是一个 MWE:

<!doctype html>
<html>
  <head>
  </head>  

<body>
    <textarea>
        &lsquo;
        &rsquo;
        &sbquo;
        &ldquo;
        &rdquo;
        &bdquo;
        &dagger;
        &Dagger;
    </textarea>
</html>

文本区域编辑器中的所有内容都会在页面加载时转换。

转义所有 &符号可能是一个选项(如此处建议:how to show &lt;html&gt; in textarea),但感觉好像这不是真正正确的做法。 (难道我不需要考虑更多的特殊情况,例如 HTML 标签等吗??)

是否有一种“推荐的”方式来实现 HTML 中的代码编辑器?

我试过了 CodeMirror , 但问题仍然存在。

最佳答案

Escaping all the & symbols may be an option but it feels as if it wasn't the really correct thing to do.

绝对是正确的做法

Wouldn't I have to consider much more special cases such as HTML tags etc.??

是的。

与要插入 HTML 文档的任何其他文本一样,该文本中在 HTML 中具有特殊含义的字符应首先转换为 HTML。

幸运的是,您只需担心字符,而不用担心像标签这样复杂的特殊情况。


如何操作取决于您生成 HTML 的方式。

在模板工具包中:

<textarea>[% myData | html %]</textarea>

在 PHP 中:

<textarea><?php echo htmlspecialchars($myData, ENT_QUOTES); ?></textarea>

关于javascript - 如何防止HTML textarea转换>等特殊符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35226252/

相关文章:

javascript - jQuery 对话框中的 Z-index。自动建议列表未正确显示

javascript - 如何在文本字段上加载数据?

html - 向 div 添加文本会导致 div 在其父容器中向下移动,从而产生间隙

javascript - Jquery 更改文本框边框但只更改一次

c++ - 加载非标准字体并在 QTextDocument 中显示它们

javascript - 我如何使用 jQuery 获取给定位置的最顶部元素?

javascript - 使用 javascript 聚焦并选择另一个输入文本字段?

javascript - 有谁知道 IE 中带有 html 选择框的 jQuery 选择器的问题吗?

javascript - 将 Google map 嵌入为 CSS 叠加层无法正确加载

javascript - 如何在node js中解析azure表的结果