【问题标题】:Prevent jQuery from escaping html entities防止 jQuery 转义 html 实体
【发布时间】:2011-12-08 01:58:48
【问题描述】:

我有一些简单的 html 编辑器。假设用户键入以下内容:

<p>Ok, this just &amp; sucks :) &ndash;</p>

并将其保存到某个变量中:

var content = "<p>Ok, this just &amp; sucks :) &ndash;</p>";

现在,我在某处使用 jQuery 将此文本附加到某个元素:

$(this).html(content); // where content is the string above

问题是它被转义了:

<p>Ok, this just &amp;amp; sucks :) &amp;ndash;</p>

我怎样才能用 &amp ;和 &ndash ;并且还有

编辑:添加了更多细节

【问题讨论】:

    标签: jquery escaping html-entities


    【解决方案1】:

    问题不在于 jQuery 正在转义实体。我想如果您使用 console.log 来编写 content 字符串,您会看到您的编辑器正在将转义的实体返回给您。

    .html().text() 的重点在于,.html() 用于将被视为 HTML 的 HTML。

    【讨论】:

    • 感谢您的回复。是的,“内容”已经被转义了(它包含与上面第一个代码相同的文本),但是 jQuery 再次重新转义它,所以 '&破折号; ' 已创建。
    【解决方案2】:

    我猜你想拥有 文本&lt;p&gt;Ok, this just &amp;amp;amp; sucks :) &amp;amp;ndash;&lt;/p&gt; 无需转换即可准确显示,这样&amp;amp;ndash; 就不会转换为&amp;-,然后使用:

    $(this).text(content);
    

    其中一个问题是content 将作为文本添加到站点this 元素中。它不会创建p 元素并将其附加到this

    但是如果你想获得转换的效果,那么你的代码应该可以工作。

    我还想提一件事,我相信语言并不是唯一与这些转换相关的。 浏览器在这些情况下起主要作用。所以,如果浏览器再次有机会检查内容,我们在脚本中做了什么,它会将它们转换为 &amp;-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 2011-11-12
      • 2021-09-10
      • 2012-02-13
      相关资源
      最近更新 更多