2016-05-03 691
好久没用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.cn/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%>
重新创建文件即可。
资源中心 2025-01-03
资源中心 2023-10-25
生活百科 2024-06-21
生活百科 2021-04-14
生活百科 2021-06-22
生活百科 2021-09-08
生活百科 2017-07-20
生活百科 2018-08-02
生活百科 2014-07-01
生活百科 2021-05-01
电脑应用 2022-02-28
生活百科 2020-10-30
资源中心 2019-12-08
生活百科 2020-06-28
电脑应用 2023-02-07
生活百科 2018-07-17
资源中心 2012-03-20
生活百科 2025-01-03
生活百科 2019-02-22
电脑应用 2019-07-29
扫码二维码
获取最新动态