在不修改HTML的情况下对代码进行代码而不是代码标记

时间:2014-04-26 17:06:42

标签: javascript html prettify

是否有一个优秀的JavaScript库可以使用<code>标记格式化和突出显示代码,并且不要求我以任何方式修改HTML?我无法控制HTML,我只能添加外部JavaScript代码。当然,我可以添加改变HTML的外部JavaScript代码......但是一个简单的JavaScript库可以处理所有理想的代码。

更新 :我目前正在每个页面中执行以下操作以使用google-code-prettify:

<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>个标签不会有任何其他类。

1 个答案:

答案 0 :(得分:0)

您可以很好地使用您自己找到的库(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();