【问题标题】:Prettify fails to handle less-than in certain circumstancesPrettify 在某些情况下无法处理小于
【发布时间】:2014-03-16 22:24:06
【问题描述】:

如果我用 prettify 尝试以下测试用例,如果不能正常工作。

<!DOCTYPE html>
<head><script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script></head>
<body>
<pre class="prettyprint lang-java">
for(int i = 0; i <things.length; i++)
</pre>
</body></html>

输出显示为“for(int i = 0; i”,这表明它未能正确处理小于。

我已向该项目提交了bug,但我想知道在此期间是否有可以使用的解决方法?

可以通过调整输入源代码来解决这个问题,例如将其更改为“for(int i =0; i

欢迎提出关于美化替代品的建议。

【问题讨论】:

    标签: javascript syntax-highlighting prettify


    【解决方案1】:

    HTML 文档中的文字 &amp;lt;&amp;gt; 字符应该被编码为实体,所以应该是:

    <pre class="prettyprint lang-java">
    for(int i = 0; i &lt; things.length; i++)
    </pre>
    

    【讨论】:

    • 对不起,我的最小测试用例很糟糕。您的回答解决了最小的测试用例,但不是我的应用程序中的实际问题。我将再次尝试提取一个最小的测试用例。
    • 我不确定为什么它不能正常工作。只要您将所有&amp;lt;&amp;gt; 字符替换为&amp;lt;&amp;gt;,我认为它应该始终有效。
    • 因为app没有内联源代码;它通过 ajax 加载它,内容类型为 text/plain。
    • 好的,在我从 Ajax 读取数据后,我需要对它进行 HTML 转义。这一点都不明显,文档中也没有解释。但是,您的回答确实帮助我弄清楚了,所以谢谢你:-)
    • 从 AJAX 读取后如何将其添加到 DOM 中?如果您使用的是 jQuery,请使用 .text() 而不是 .html(),它会为您转义。
    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多