《javascript清理百度ueditor在线编辑器的title和alt属性,为umeditor添加加alt属性》要点:
本文介绍了javascript清理百度ueditor在线编辑器的title和alt属性,为umeditor添加加alt属性,希望对您有用。如果有疑问,可以联系我们。
相关主题:JS、Jquery插件 / ueditor在线编辑器
百度的ueditor会为上传的图片自动添加title,但是title值和alt值分别是图片在服务器上和本地电脑上的名称。因为需要改为文章标题。
之前我们发过PHP版的服务端处理程序。http://www.vephp.com/jiaocheng/83.html
现在我们改编成javascript版的函数,让这个功能能在前端处理,节省服务端资源消耗。
使用方法:
在UE或UM编辑器触发blur事件时执行。你需要写一个小函数,就是取到编辑器内容,然后用本函数过滤,再写回编辑器。
函数自由分享,转发请保留 http://www.vephp.com 尊重别人的劳动成果,谢谢。
/** * 清理ueditor内容中图片名title和alt,给UMeditor内容添加alt * http://www.vephp.com 维易PHP * @param content 文章内容 * @param artTitle 文章内容标题,也就是要做为img的title属性值 * @param clearTitle 是否保留title属性,1-不保留,只要alt属性,2保留 * @returns {*} */ function resetUMcontent(content, artTitle ,clearTitle) { var useSn = true; //是否把标题加入到alt时,尾部加上序列号 var artTitle = artTitle || ''; //var clearTitle=1; //是否保留title属性,1-不保留,只要alt属性,2保留 var titleLen = artTitle.length; var sn=1; //清理title var reg = /(<img[^>]* )(title\s*=\s*[\'\"][^\'\"]*[\'\"])([^>]*>)/ig; while (clearTitle && (title = reg.exec(content)) != null) { sn = useSn ? sn++ : ''; titleTag = (clearTitle>1 && titleLen >0 ) ? ' title="'+ artTitle + sn + '" ' : ' '; newImgCode = $.trim( title[1]) + titleTag +$.trim( title[3]); //trim(title[1]) content = content.replace(title[0], newImgCode); } //清理alt //处理alt,保留以利SEO reg = /(<img[^>]* )(alt\s*=\s*[\'\"][^\'\"]*[\'\"])([^>]*>)/ig; while (clearTitle && (alt = reg.exec(content)) != null) { sn = useSn ? sn++ : ''; altTag = titleLen>0 ? ' alt="' + artTitle+sn+'" ' : ' '; newImgCode = alt[1] + altTag + alt[3]; //trim(title[1]) content = content.replace(alt[0], newImgCode); } if(titleLen==0) return content; //处理无alt和title的,适用于UM reg = /<img [^>]+>/ig; while ((res = reg.exec(content)) != null) { if( res[0].indexOf(' alt')!=-1 ||res[0].indexOf(' title')!=-1 ) continue; sn = useSn ? sn++ : ''; altTag = ' alt="' + artTitle+sn+'" '; newImgCode = res[0].replace('<img', '<img'+altTag); content = content.replace( res[0], newImgCode); } return content; }
转载请注明本页网址:
http://www.vephp.com/jiaocheng/84.html