汇盛国际娱乐:z-blog SyntaxHighlighter 长代码无法换行

标签:新闻动态    日期:2017-11-13 10:50    录入:汇盛国际平台    浏览:

  

[SyntaxHighlighter,长代码无法换行]z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)

  

用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下...

  

  

解决方法:  

  

打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示。

  

  

由于每个人调用的css不同,大家可以根据自己的需要修改css  

  

测试发现对于3.08版本无效,大家可以参考下面的方法  

  

由于我的博客主要是代码分享,很多贴的代码,都很长。很多时候我都是手动给他换行。

  

  

但是今天实在是受不了。从网上找个办法解决一下。

  

  

1、css修改:  

  

  

  

在文件夹:\zb_system\ADMIN\ueditor\third-party\SyntaxHighlighter  

  

在文件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();});
  
  

上面的代码就是属于长代码。大家看看是不是都换行了??

  

  

现在,行号的高度就能和代码的高度保持一致了。

  

★★★小编:汇盛国际注册 整理文章,欢迎大家转载 ★★★
上一篇:汇盛国际:25个优雅的jQuery Tooltip插件推荐
下一篇:没有了