z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
作者:bea
用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下... 解决方法: 打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示。 由于每个人调用的css不同,大家可以根据自己
用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下...
解决方法:
打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示。
由于每个人调用的css不同,大家可以根据自己的需要修改css
测试发现对于3.08版本无效,大家可以参考下面的方法
由于我的博客主要是代码分享,很多贴的代码,都很长。很多时候我都是手动给他换行。
但是今天实在是受不了。从网上找个办法解决一下。
1、css修改:
在文件夹:zb_systemADMINueditor hird-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();});
上面的代码就是属于长代码。大家看看是不是都换行了??
现在,行号的高度就能和代码的高度保持一致了。
有用 | 无用
解决方法:
打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示。
由于每个人调用的css不同,大家可以根据自己的需要修改css
测试发现对于3.08版本无效,大家可以参考下面的方法
由于我的博客主要是代码分享,很多贴的代码,都很长。很多时候我都是手动给他换行。
但是今天实在是受不了。从网上找个办法解决一下。
1、css修改:
在文件夹:zb_systemADMINueditor hird-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();});
上面的代码就是属于长代码。大家看看是不是都换行了??
现在,行号的高度就能和代码的高度保持一致了。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- Jquery实现仿京东商城省市联动菜单
- javascript实现二级级联菜单的简单制作
- jquery通过扩展select控件实现支持enter或focus选择的方法
- javascript中checkbox使用方法实例演示
- jquery实现表格隔行换色效果
- javascript设计简单的秒表计时器
- 跟我学习javascript的定时器
- 分享纯手写漂亮的表单验证
- javascript获取系统当前时间的方法
- jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
- javascript电商网站抢购倒计时效果实现
- 跟我学习javascript的Date对象
- 跟我学习javascript的this关键字
- jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
- 基于Jquery代码实现手风琴菜单
- 跟我学习javascript的作用域与作用域链
- 每天一篇javascript学习小结(属性定义方法)
- 理解 JavaScript Scoping & Hoisting(二)
- js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?