【发布时间】:2016-10-10 05:21:39
【问题描述】:
我注意到 Firefox 中有一些非常奇怪的行为,我想知道是否有人制定了如何规范或解决这种行为的策略。
特别是如果您为 firefox 提供包含 html 实体的基本锚点,它将取消转义这些实体,无法重新转义它们并将您退回无效的 html。
例如,firefox 对以下 url 的处理不当:
<a href="&gt;&lt;&quot;">My Original Link</a>
如果这个 url 被 firefox 解析,它将取消 &gt;&lt;&quot; 并开始处理如下的 url:
<a href="<>"">My Original Link</a>
同样的操作似乎在其他地方也能正常工作,甚至是 safari 和 edge。
我尝试了很多不同的方式将 html 交给 firefox 以避免这个问题。尝试手动调用解析器,尝试设置 innerHTML,尝试 jQuery html(),尝试为 jQuery 构造函数提供一个巨大的字符串,等等。所有方法都产生了相同的错误结果。
在这里看一个小提琴: https://jsfiddle.net/kamelkev/hfd2b6sn/
我对这种处理方式似乎有多糟糕感到有些困惑。一定有办法解决这个问题,但我似乎找不到办法。
我的应用程序是一个 html 操作工具,因此我通常会通过下拉到 XML 并在保留到哑键值存储之前处理那里的问题来规范此类问题,但在这种特殊情况下,<> 字符是阻止我将此文档作为 XML 处理。
想法?
【问题讨论】:
标签: javascript jquery html firefox