2010-04-04 37 views
1

我正在使用Prettify進行語法突出顯示,但它不適用於動態生成的代碼。在動態生成的代碼上使用Prettify

我有一個窗體,當提交生成代碼並在<div id="output></div>中顯示它(不刷新),但美化此代碼不起作用,是否有任何解決方法?

非常感謝!

+0

你是如何調用美化複製? – 2010-04-04 04:13:26

+0

body onload = .... – 3zzy 2010-04-04 04:27:38

+0

不完全值得回答,但是,嘗試

- 使用第二個引號或任何它們被稱爲(它從輸出的另一端遺漏) – Jack 2010-04-04 17:20:06

回答

1

確保您在新代碼加載後回想起美化。

您將需要添加一個處理程序到'提交'事件。我不知道你是否使用框架或原始JS,所以我不能給出一個代碼示例。

1

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

簡而言之:

  • 監聽事件:用戶處於非活動狀態的X秒(後按鍵)
  • 運行美化功能prettyPrint()
  • (如果用戶開始輸入前X秒做不運行美化)

$(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