在不修改HTML的情况下,对代码进行预处理,而不对标记进行编码



是否有一个好的JavaScript库可以用<code>标记格式化和着色高亮显示代码,而不需要我以任何方式修改HTML?我无法控制HTML,只能添加外部JavaScript代码。当然,我可以添加外部JavaScript代码来改变HTML。。。但一个处理所有这些的简单JavaScript库将是理想的。

UPDATE :我目前正在每个页面中执行以下操作,以使用谷歌代码pretify:

<script>
  var codes = document.getElementsByTagName("code");
  for (var i = 0; i < codes.length; i++) {
    codes[i].className = 'prettyprint';
  }
</script>
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>

我可以使用className +=,但我知道<code>标签不会有任何其他类。

您可以很好地使用自己找到的库(https://code.google.com/p/google-code-prettify/)并有一个你的小脚本,将所需的类添加到每个<code>标签(见fiddle):

var myFunction = function()
{
  var elements = document.getElementsByTagName("code");
  for (var i = 0; i < elements.length; i++)
  {
    elements[i].className += "prettyprint";
  }
  window.PR.prettyPrint();
}

请注意,要手动调用prettyPrint,必须使用正确的作用域:window.PR.prettyPrint();

最新更新