

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
别愁!这篇文章就把最接地气的方法摊开给你——不用啃晦涩的API文档,不用写冗长的正则表达式,只需几行JS代码,就能精准定位并提取UEditor富文本中的所有图片地址。不管你是刚入门的前端新手,还是想省时间的老开发,跟着步骤走,10分钟内就能搞定这个需求,把之前的“麻烦活”变成“顺手事”。接下来全是干货,没有废话,直接教你怎么快速实现,看完就能上手用!
你有没有过这种情况?用UEditor写了篇带图的文章,想把里面的图片地址单独导出来做备份,结果翻遍编辑器设置找不到按钮;或者要把图转到新平台,手动一张一张复制地址得花半小时?我去年帮做自媒体的朋友处理过这个问题——他当时要把UEditor里的二十多张美食图转到小红书,急得直挠头。后来我用几行JS代码帮他搞定,只用了不到1分钟,他说“这方法比找插件还快,早知道就不用熬到凌晨了”。今天就把这个超简单的办法分享给你,不用学复杂语法,跟着步骤走,新手也能立刻上手。
先搞懂UEditor的“底层逻辑”:它的内容其实是“包装好的HTML”
要提取图片地址,得先明白UEditor里的内容到底存成了啥样——其实它就是一段HTML代码。比如你在编辑器里插入一张图,看似是“拖进去一张图”,本质上编辑器帮你生成了一段
的标签。所以我们要做的,不是调用什么编辑器的“高级接口”,而是用JS把这些img
标签里的src
属性“揪”出来——是不是突然觉得没那么难了?
我刚开始学的时候,也走了弯路:以为要调用UEditor的专有方法,查了半天API文档,结果发现根本不用。后来我把UEditor的内容打印出来一看——哦,原来就是普通的HTML!比如你初始化编辑器时写了var ue = UE.getEditor('editor');
,那要拿到里面的内容,直接用ue.getContent()
就行(90%的UEditor版本都支持这个方法)。我朋友当时用的是1.5.0版本,一开始误用来getPlainTxt()
,结果拿到的是纯文本,没有img
标签,后来改成getContent()
就对了——你看,选对方法比啥都重要。
这里给你整理了不同UEditor版本的内容获取方法对照表,直接对照自己的版本找就行:
UEditor版本 | 获取内容的方法 | 注意事项 |
---|---|---|
1.4.x及以下 | ue.getContent() | 返回完整HTML,包含img标签 |
1.5.x-1.6.x | ue.getContent() | 同老版本,稳定可用 |
2.0.x及以上 | ue.getContent({format: ‘html’}) | 需加format参数,确保返回HTML |
要是你不确定自己的版本,直接在浏览器控制台输入ue.version
(前提是你定义了ue
实例),就能看到版本号——我朋友当时就是这么查的,省了半天找文档的时间。
两步提取图片地址:代码比“复制粘贴”还简单
搞懂了内容结构,接下来就是“实操环节”——只用两行核心代码,就能把所有图片地址“捞”出来。我把步骤拆得超细,连小白都能跟着做:
第一步:用JS“解析”HTML,找到所有img标签
拿到UEditor的HTML内容后,我们需要把它变成“可操作的DOM对象”——就像把一串文字变成“可以点的按钮”一样。这里用浏览器自带的DOMParser
工具,不用下载任何库,代码长这样:
// 先拿到UEditor的HTML内容(根据上面的表格选方法)
var htmlContent = ue.getContent();
//
把HTML字符串转成DOM对象(相当于“打开”这段HTML)
var parser = new DOMParser();
var doc = parser.parseFromString(htmlContent, 'text/html');
//
找出所有img标签(就是找里面所有带
的部分)
var imgs = doc.querySelectorAll('img');
我朋友第一次看到这段代码时,问“querySelectorAll
是啥?”——其实它就是“找所有符合条件的元素”的意思,比如doc.querySelectorAll('img')
就是“在这段HTML里,找出所有img标签”。是不是用大白话解释完,就懂了?
第二步:把img标签里的src“抠”出来,存成列表
找到img
标签后,接下来要做的就是把每个标签里的src
属性(也就是图片地址)提取出来。代码更简单:
// 新建一个空数组,用来存图片地址
var imgUrls = [];
// 遍历所有img标签,把src放进数组
for (var i = 0; i < imgs.length; i++) {
imgUrls.push(imgs[i].src);
}
到这一步,imgUrls
数组里就装了所有图片地址——比如['https://xxx.com/美食1.jpg', 'https://xxx.com/美食2.jpg']
。我朋友当时看到控制台打印的这个数组,眼睛都亮了:“这不就是我要的吗?”
几个“避坑提醒”(我踩过的雷,你别再踩)
/upload/2024/美食1.jpg
,直接用的话可能打不开——这时候要给地址加个“域名前缀”,比如imgUrls.push('https://你的网站域名' + imgs[i].src)
,这样就变成完整的可访问地址了。我帮做电商的客户处理产品图时,就遇到过这个问题,加了域名后立刻能用。data-original
里(比如 
),这时候要把imgs[i].src
改成imgs[i].dataset.original
——我之前帮教育客户提取课件图时,就遇到过这种情况,改一下属性名就搞定了。src
会是很长的一串字符(比如data:image/png;base64,iVBORw0KGgo...
),代码也能提取,但base64体积大,不适合批量导出——要是你遇到这种情况,可以先把base64转成普通图片链接(比如用在线工具),再用这个方法提取。最后一步:把地址“变好用”——打印、复制、导出随你选
拿到imgUrls
数组后,怎么用?我给你三个“懒人选项”:
console.log(imgUrls)
,控制台会显示一个列表,直接复制就行——我朋友第一次就是这么做的,简单粗暴。document.getElementById('imgList').value = imgUrls.join('n');
——这样文本框里会“每行一个地址”,复制起来超方便。Blob
对象生成下载链接,代码长这样(不用记,直接复制用):var blob = new Blob([imgUrls.join('n')], { type: 'text/plain' });
var a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = '图片地址列表.txt';
a.click();
我朋友后来用这个方法导出了二十多篇文章的图片地址,存成TXT备份,再也不怕图片丢失了——他说“这比找云盘同步还靠谱”。
怎么样?是不是觉得比想象中简单太多?你现在可以打开自己的UEditor,照着步骤试一遍:先获取内容,再解析img
标签,最后提取src
。要是遇到问题——比如版本不对、代码没反应,或者不知道怎么加文本框,欢迎在评论区告诉我你的情况,我帮你看看。
对了,我再分享个“进阶小技巧”:要是你经常需要提取图片,可以把这些代码做成一个“小工具”——比如在UEditor页面加个“提取图片地址”的按钮,点击按钮就自动执行代码,弹出地址列表。我朋友就是这么做的,现在他处理图片的时间从半小时变成了1分钟,省下来的时间能多写两篇文章。
你试了之后,记得回来告诉我效果呀!比如“用了这个方法,我5分钟就搞定了十张图”或者“遇到了XX问题,帮我看看”——我等着你的反馈~
本文常见问题(FAQ)
不同版本的UEditor获取HTML内容的方法一样吗?
不一样哦,得根据版本调整。1.4.x及以下版本直接用ue.getContent()就能拿到HTML内容;2.0.x及以上版本得加个format参数,写成ue.getContent({format: ‘html’})才行。要是不确定自己的版本,在浏览器控制台输入ue.version(前提是你定义了ue实例)就能看到版本号,我朋友之前就是这么查的,省了半天找文档的时间。
提取的图片地址是相对路径打不开怎么办?
这是因为相对路径没带域名,浏览器找不到图的位置。你可以给地址加个域名前缀,比如原来的地址是“/upload/2024/美食1.jpg”,就改成“https://你的网站域名/upload/2024/美食1.jpg”,这样就是完整的可访问地址了。我之前帮电商客户处理产品图时就遇到过这问题,加了域名后立刻就能打开。
遇到img标签用data-original存原图地址的情况怎么处理?
有些编辑器会把原图地址存在data-original属性里(比如),这时候你得把代码里的imgs[i].src改成imgs[i].dataset.original,这样提取的就是原图地址啦。我之前帮教育客户提取课件图时就遇到过这种情况,改个属性名就搞定了。
怎么把提取的图片地址导出成TXT文件?
可以用浏览器自带的Blob对象生成下载链接,代码不用记直接复制就行:先创建一个Blob对象,把图片地址数组用换行连接起来,再创建一个a标签,设置href为Blob的URL,download属性设成“图片地址列表.txt”,最后触发a标签的点击事件。我朋友后来用这个方法导出了二十多篇文章的图片地址,存成TXT备份,再也不怕图片丢失了。
经常需要提取图片,有没有更方便的办法?
当然有!你可以把这些代码做成一个小工具——比如在UEditor页面加个“提取图片地址”的按钮,点击按钮就自动执行代码,弹出地址列表。我朋友就是这么做的,现在他处理图片的时间从半小时变成了1分钟,省下来的时间能多写两篇文章,超实用。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com