nnlb的网站出问题了,直接复制过来的文章出现乱码
经过一番探查,发现是动网8.2的编辑器探查出复制进去的东西有WORD垃圾代码,询问是否删除多余代码,一按确定就多出了垃圾代码
因为复制过来的代码中含有将图片自动缩小的代码,其中带有>符号,而动网编辑器的代码就直接截断到了这里,后面的一些判断脚本就成了乱码。
而原来的图片地址被直接过滤掉了
知道了错误的原因就很好弄了,找到编辑器的调用文件dv_edit/toolbar.js,找到if (d.test(c)&&confirm(“可能您是从word复制过来,已检测到里面有多余的代码,点确定清除多余代码,点取消保持完整粘贴。”)){c=this_.clear(c);}可以知道使用了函数clear
然后往上可以找到this.clear=function(c)函数,然后修改过滤规则
把自动改变图片大小的脚本先给去掉,去掉的方法当然就是替换啦 c=c.replace(/onload=”javascript[^”]*”/gi, “” );
然后还是保留图片,把过滤掉图片的这行去掉,或者在前面加解释代码//???? c=c.replace(/<img+.[^>]*>/gi, “”);
为了使原来已经错误的代码能正确显示,再找到论坛的ubb解释文件inc/Dv_ubbcode.asp
找到处理老DHTML贴子的函数Public Function Dv_UbbCode_DHTML(s,PostUserGroup,PostType,sType)
在最后输出前添加一些过滤,下面一条是发现错误的代码生成的图片全在一行了,需要干脆在前面加个换行符,因为我的正则是在很差,就凑合着先用了
??’小货添加,去掉没必要的代码,是由编辑器去掉word代码后生成的
??re.Pattern=”<a href=””([^<>]*?)”” target=””_blank”” border=””0″”>600\){this.width=600;this.alt=’点击在新窗口打开’;}”” border=0></a>”
??????? s=re.Replace(s,”<br><a href=””$1″” target=””_blank””? border=””0″”><img SRC=””$1″” ></a>”)
??????? ‘在每个图前面添加个<br>
??re.Pattern=”<a href=””http://www.imxh.com/([^<>]*?)””([^<>]*?)><img([^<>]*?)src=””http://www.syc163.com/([^<>]*?)/></a>”
??????? s=re.Replace(s,”<br><a href=””http://www.imxh.com/$1″” target=””_blank””? border=””0″”><img alt=””点击在新窗口打开””? SRC=””http://www.imxh.com/$4 /></a>”)
??????? ‘小货添加结束