2014-01-10 92 views
0

我想申請選擇了下拉框,當塗脂抹粉語法高亮到生成的字符串。如果文本被放在手邊,它可以正常工作,但如果生成,則文本不會突出顯示。我試過調用prettyPrint()函數,但它仍然不起作用。美化用於生成的字符串

$('#db').change(
     function(){ 
      query = ""; 
     query = "<pre class=\"prettyprint\" id=\"query\">Insert Into "; 
      query = query + $('#db').val() + "</pre>"; 
      document.getElementById("pp").innerHTML = query; 
      prettyPrint(); 
      $.ajax({ 
       url: "functions.php?&f=table", 
       type: "GET", 
       data: { db: $('#db').val() } 
      }) 
      .done(function(result) { 
       $('#table').html(result); 
     }) 
     .fail(function() { 
      alert("error"); 
     }); 
     } 
    ); 
+0

在控制檯上,它說「未捕獲的ReferenceError:prettyPrint沒有定義」,但如果它工作沒有生成的字符串,這意味着腳本正確引用正確? – user1999806

+0

你是否在其他地方定義了'prettyPrint'?如果不是,那可能會中斷你的執行 – Machavity

+0

檢查這個http://jsfiddle.net/raunakkathuria/fB9bk/它的工作正常,可能是使用漂亮打印功能的問題 –

回答

1

下面是詳細的答案,每documentation

如果您加載這個腳本,那麼你不需要調用prettyPrint()功能,它會自動美化帶班prettyprint

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script> 

內容但是,如果你加載CSS和JS文件分開,那麼你需要調用prettyPrint()

<link href="prettify.css" type="text/css" rel="stylesheet" /> 
<script type="text/javascript" src="prettify.js"></script> 

從技術文檔:,然後運行prettyPrint功能當網頁加載完畢。這樣做的一個方法是通過onload處理這樣的:

<body onload="prettyPrint()"> 

DEMO與腳本包括而非加載單獨