【问题标题】:Escaped html characters are being unescaped by jquery .html() in some browsers在某些浏览器中,jquery .html() 对转义的 html 字符进行了转义
【发布时间】:2013-12-04 18:34:03
【问题描述】:

这是我的代码:

console.log($('p').html())

<p><span data-htmlContent="<p>This is not really in a p tag.</p>">.</span>.</p>

在 Chrome 和旧版 FireFox 中,控制台日志:<span data-htmlcontent="<p>This is not really in a p tag.</p>">.</span>.

但在 IE 和更新的 FireFox 中,它会记录:<span data-htmlcontent="<p>This is not really in a p tag.</p>">.</span>.

问题可以看这里:http://jsfiddle.net/Nzj52/9/

【问题讨论】:

  • 我在 FF24 和 ie10 中得到相同的结果
  • 非常有趣的错误...我的第一个猜测是 jQuery 的 html() 选择器有问题,但让我玩一下,看看我想出了什么。
  • @megawac,多么令人沮丧。它在旧版本的 FF 中工作,但是当我更新时,它就像你说的那样坏了。我会编辑问题。
  • 问题根本与正则表达式无关:问题在于 <和>即使它们在属性中,它们在 html 函数(oldHtml 字符串)给出的 HTML 中也不会转义。应修复此问题以删除对正则表达式的所有引用并包含相关部分。
  • 还要注意,这不是一个 jQuery 错误,它更像是 innerHTML 访问器中的一个错误。

标签: javascript internet-explorer dom cross-browser html-escape-characters


【解决方案1】:

与渲染操作相比,它可能与每个浏览器控制台的操作方式有关。如果您这样做并提醒您,您的答案会改变吗?

而不是调用 console.log($('p').html()); 尝试调用 console.log($('p').text());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2012-12-27
    • 2016-01-19
    • 1970-01-01
    • 2017-01-20
    • 2010-09-06
    相关资源
    最近更新 更多