在动态生成的代码上使用Prettify

时间:2010-04-04 04:00:58

标签: javascript css prettify

我正在使用Prettify进行语法突出显示,但它不适用于动态生成的代码。

我有一个表单,在提交时生成代码并在<div id="output></div>中显示(不刷新),但美化不适用于此代码,是否有解决方法?

非常感谢!

2 个答案:

答案 0 :(得分:1)

确保在加载新代码后回想起Prettify。

您需要在“提交”事件中添加处理程序。我不知道你是使用框架还是原始JS,所以我不能给出代码示例。

答案 1 :(得分:1)

http://www.codingthewheel.com/archives/syntax-highlighting-stackoverflow-google-prettify有一个很好的解决方案。

简而言之:

  • 侦听事件:用户在X秒(按键后)处于非活动状态
  • 运行Prettify函数prettyPrint()
  • (如果用户在X秒之前开始输入,则不运行Prettify)

$(document).ready(function() {
  $('#mytextarea').keydown(function() {
    $(this).stopTime();
    $(this).oneTime(1000, function() { 
      /* launch the Prettify here */
    });
  });
});

http://www.codingthewheel.com/archives/syntax-highlighting-stackoverflow-google-prettify

复制的代码