现在位置首页 / 项目实战 /正文

z-blog升级最新版SyntaxHighlighter报错-highlightContainers undefined

作者: IT小兵 | 2014年3月6日| 热度:℃ | 评论: |参与:

最近升级了一下我的blog:IT分享,就是当前博客了。

但是SyntaxHighlighter一直报错,导致我后续的自定义脚本无法工作。

报错的地方是:highlightContainers undefined

我就跟踪调试,发现在这个文件:\zb_system\FUNCTION\c_html_js_add.js里面有这段插件使用的代码:

<%If ZC_SYNTAXHIGHLIGHTER_ENABLE Then htm = htm& Response_Plugin_Html_Js_Add_CodeHighLight_Action%>

既然他有错误,我就把错误处理一下。

<%If ZC_SYNTAXHIGHLIGHTER_ENABLE Then%>
    
		//为了在编辑器之外能展示高亮代码
    
    	 SyntaxHighlighter.highlight();
    
    	 //调整左右对齐
        if(SyntaxHighlighter.highlightContainers!=null){
    	 for(var i=0,di;di=SyntaxHighlighter.highlightContainers[i++];){
    
         	   var tds = di.getElementsByTagName('td');
    
            	for(var j=0,li,ri;li=tds[0].childNodes[j];j++){
    
                	ri = tds[1].firstChild.childNodes[j];
    
                	ri.style.height = li.style.height = ri.offsetHeight + 'px';
    
            	}
    
    	 }    
    	 }
   <%End If%>

我增加了一个null和undefined异常处理,但是这样就没有高亮代码效果了。

后来,我发现他这个循环其实就是找到td进行一些换行处理。

所以自己写段代码加上即可.用一下代码:

	<%If ZC_SYNTAXHIGHLIGHTER_ENABLE Then%>
		 SyntaxHighlighter.highlight();
    	 //调整左右对齐
		var tables = document.getElementsByTagName('table');
		for (var t = 0,ti; ti = tables[t++];) {
			if (/SyntaxHighlighter/i.test(ti.className)) {
				var tds = ti.getElementsByTagName('td');
				for (var i = 0,li, ri; li = tds[0].childNodes[i]; i++) {
					ri = tds[1].firstChild.childNodes[i];
					if (ri) {
						ri.style.height = li.style.height = ri.offsetHeight + 'px';
					}
				}
			}
}
<%End If%>

替换:

<%If ZC_SYNTAXHIGHLIGHTER_ENABLE Then htm = htm& Response_Plugin_Html_Js_Add_CodeHighLight_Action%>

重新创建文件即可。


转发注明:IT分享

点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询