百度编辑器ueditor添加图片自动添加alt标签

作者:Liaodeity - 2015年06月08日

最近发现一些很奇怪的问题,就是那个百度编辑器的上传图片问题,居然没有自动添加alt标签,这个让我很苦恼。

百度自己的SEO优化规则一方面说,我们图片img的标签一定要添加alt标签,这样才能有利于优化,但是丫的是自家的编辑器居然没有自动添加alt标签。

对于这个问题,我只能默默的需找方法,下面是一个解决方法:

打开百度编辑器(Ueditor)目录/dialogs/image/image.js文件,查找“插入多张图片”

修改以下代码:

/**
 * 插入多张图片
 */
function insertBatch() {
    if (imageUrls.length < 1) return;
    var imgObjs = [],
        align = findFocus("localFloat", "name");
    for (var i = 0, ci; ci = imageUrls[i++];) {
        var tmpObj = {};
        tmpObj.title = ci.title;
        tmpObj.alt = ci.title;
        tmpObj.floatStyle = align;
        //修正显示时候的地址数据,如果后台返回的是图片的绝对地址,那么此处无需修正
        tmpObj._src = tmpObj.src = editor.options.imagePath + ci.url;
        imgObjs.push(tmpObj);
    }
    insertImage(imgObjs);
    hideFlash();
}

即在tmpObj.title = ci.title;下面添加tmpObj.alt = ci.title;这个应该很简单就可以看得出来是什么意思,看不出来,我只能呵呵了。


下面的我也没有找到什么,只有有一些网友说,需要这样设置,我丫的找了许久,都没有找到,不过通过上面的已经解决了问题,我觉得应该是我没有使用这么高级的过滤规则。

如果你在ueditor.config.js配置文件filterRules中定义了图片img标签的过滤规则,需要在这里设置下:

img: function (node) {
    var src = node.getAttr('src');
    var alt = node.getAttr('title');
    var title = node.getAttr('title');
    node.setAttr();
    node.setAttr({'src':src})
    node.setAttr({'alt':alt})
    node.setAttr({'title':title})
},

再添加一个东西,在图片上传了之后,要修改alt怎么办,直接改代码好像太麻烦了,主要怕编辑人员改错了,这样就麻烦了。

所以我觉得可以将图片上传的修改的一个描述,添加为alt,这样我们修改描述的时候,一并把alt给修改了,这样也就放心多了

 /**
 * 插入单张图片
 */
function insertSingle() {
    var url = g("url"),
        width = g("width"),
        height = g("height"),
        border = g("border"),
        vhSpace = g("vhSpace"),
        title = g("title"),
        align = findFocus("remoteFloat", "name"),
        imgObj = {};
    if (!url.value) return;
    if (!flagImg) return;   //粘贴地址后如果没有生成对应的预览图,可以认为本次粘贴地址失败
    if (!checkNum([width, height, border, vhSpace])) return false;
    imgObj.src = url.value;
    imgObj._src = url.value;
    imgObj.width = width.value;
    imgObj.height = height.value;
    imgObj.border = border.value;
    imgObj.floatStyle = align;
    imgObj.vspace = imgObj.hspace = vhSpace.value;
    imgObj.title = title.value;
    imgObj.alt = title.value;
    imgObj.style = "width:" + width.value + "px;height:" + height.value + "px;";
    insertImage(imgObj);
    editor.fireEvent("catchRemoteImage");
    hideFlash();
}

主要就是添加一个一句这个imgObj.alt = title.value;这样就可以轻松解决了一些不必要的麻烦,大家可以试一下。

本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/221

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!