菜鸟之家_电脑爱好者 - 我菜但我热爱,一个菜鸟站长的成长历程!
电脑入门级教程网站,一直致力于为电脑初学者提供动力,为菜鸟级中小站长提供图文并茂、通俗易懂的教程!

Z-blog报错:'SyntaxHighlighter.highlightContainers'为空或不是对象

好久没用WinXP访问自己的博客了,今天无意间发现,我用Z-blog搭建的博客网站在IE6下访问报错,消息:'SyntaxHighlighter.highlightContainers'为空或不是对象。

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

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

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

<%If ZC_SYNTAXHIGHLIGHTER_ENABLE Then%>
//为了在<A class=keylink title= 编辑器 href="http://dingguangqun.com/UIweb/baidu-ueditor-UMeditor-jingjian.html" target=_blank>编辑器</A>之外能展示高亮代码
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%>

重新创建文件即可。

标签:Z-blog博客源码优化
分类:网站建设| 发布:网络咖啡| 查看: | 发表时间:2016/5/3
原创文章如转载,请注明:转载自菜鸟之家_电脑爱好者 本文链接:http://dingguangqun.com/article/1814.html
上一篇 » Acer软件保护卡功能教程 下一篇 » Win7开始菜单中没有运行命令怎么办?

已经有 ( 0 ) 位网友发表了评论,你也评一评吧!

Design By XvDesign.Com | Login | Power By Z-Blog 2.3 Avengers Build 180518.