首頁 > web前端 > js教程 > z-blog SyntaxHighlighter 長程式碼無法換行解決方法(基於jquery)_jquery

z-blog SyntaxHighlighter 長程式碼無法換行解決方法(基於jquery)_jquery

WBOY
發布: 2016-05-16 15:31:20
原創
1246 人瀏覽過

用SyntaxHighlighter 語法高亮插件的朋友可能都遇到過代碼顯示不換行的問題,這個問題在網上也找不到什麼解決辦法,一直困擾了我很久,今天算是把它解決了,辦法其實簡單,下面說下...

解決方法:

開啟shCoreDefault.css文件,找到對.syntaxhighlighter textarea的定義,最後加上一句:word-break:break-all !important;就ok了,意思是讓程式碼強制換行顯示。

由於每個人調用的css不同,大家可以依照自己的需求修改css

測試發現對於3.08版本無效,大家可以參考下面的方法

由於我的部落格主要是程式碼分享,很多貼的程式碼,都很長。很多時候我都是手動幫他換行。

但是今天實在是受不了。從網路上找個辦法解決一下。

1、css修改:

在資料夾:zb_systemADMINueditorthird-partySyntaxHighlighter

在檔案shCoreDefault.pack.css加上css:

body .syntaxhighlighter .line{  
white-space: pre-wrap !important;
} 
.syntaxhighlighter{
width:100%!important;margin:.3em 0 .3em 0!important;position:relative!important;overflow:auto!important;background-color:#f5f5f5!important;border:1px solid #ccc!important;word-break:break-all;
}
登入後複製

2、Jquery代碼:

$(function () {
 // Line wrap back
 var shLineWrap = function () {
  $('.syntaxhighlighter').each(function () {
   // Fetch
   var $sh = $(this),
    $gutter = $sh.find('td.gutter'),
    $code = $sh.find('td.code')
    ;
   // Cycle through lines
   $gutter.children('.line').each(function (i) {
    // Fetch
    var $gutterLine = $(this),
     $codeLine = $code.find('.line:nth-child(' + (i + 1) + ')')
     ;
    //alert($gutterLine);
    // Fetch height
    var height = $codeLine.height() || 0;
    if (!height) {
     height = 'auto';
    }
    else {
     height = height += 'px';
     //alert(height);
    }
    // Copy height over
    $gutterLine.attr('style', 'height: ' + height + ' !important'); // fix by Edi, for JQuery 1.7+ under Firefox 15.0
    console.debug($gutterLine.height(), height, $gutterLine.text(), $codeLine);
   });
  });
 };
 // Line wrap back when syntax highlighter has done it's stuff
 var shLineWrapWhenReady = function () {
  if ($('.syntaxhighlighter').length === 0) {
   setTimeout(shLineWrapWhenReady, 10);
  }
  else {
   shLineWrap();
  }
 };
 // Fire
 shLineWrapWhenReady();});
登入後複製

上面的程式碼就是屬於長程式碼。大家看看是不是都換行了? ?

現在,行號的高度就能和程式碼的高度保持一致了。

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板