html中显示js获取的图片地址,js如何获取UEditor富文本编辑器中的图片地址

本文介绍了如何通过JavaScript获取UEditor编辑器中的图片src。首先,利用UEditor的getContent()方法获取内容,然后通过创建DOM元素并填充内容,将其转换为jQuery对象。接着,使用jQuery的选择器找到img元素并循环获取src值。在过程中遇到了jQuery转换不完整的问题,最后通过原生JavaScript解决,并成功获取到图片地址。此外,还分享了如何获取UEditor中的第一张图片作为缩略图,包括正则表达式筛选图片以及Java实现的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a12799cc1f04eb29d6cfd9faa57f391c.png

写之前在网上找了很多方法,最简单的思路应该是1.获取UEditor中的内容;2.将获取到的字符串转换成jquery对象;3.选择器找到img元素,获取src值。var content= UE.getEditor('details').getContent();//获取编辑器内容

var $p = document.createElement("p");//创建一个p元素对象

$p.innerHTML = content;//往p里填充html

var $v = $($p);//从dom对象转换成jquery对象

$.each($v.find("img"),function (v,i) {//选择器找到img元素,循环获取src值

console.log("src======"+i.src);

});

打印结果:

18f7f58121e495237d70a6c0310c0de2.png

写出上面代码之前碰了几次壁,绕了几个弯,下面就是我整个开发过程,记录下。

1、获取UEditor中的内容

这一步很简单,使用编辑器提供的getContent()函数

2、将获取到的字符串转换成jquery对象

夏季到了,持续高温就连大人都受不了,更别说孩子了。所以该不该给孩子穿袜子又成了宝妈心头的大事,一方面觉得应该给孩子穿,毕竟这个几个理由是拒绝不了的。

还有一部分宝妈意见不同,认为还是不穿袜子比较好:

1.小孩子经常出汗,新陈代谢比较快,袜子如果不透气的话,有可能会因为生脚汗导致孩子哭闹不休。

2.脚底的穴位多,不穿袜子可以充分按摩到脚底。有利于身体其他机能的运转。缓解便秘,消化不良等症状。

好像两方家长说的都有道理,那么到底应该穿袜子吗?

var content= UE.getEditor('details').getContent();

上面是我编辑器里的内容(content),最简单的方法是用

$(content)来转换成jquery对象,但是$(content).html()的打印结果如下:

ca1797fb22aeb4490e3d18b877a66404.png

可以看出来转换出的Jquery对象代表的是content中第一个html元素p,剩下的html元素获取不到,也就无法进行第三步获取图片地址。

这里可以补充的是,网上提供的一种方法

$(content).get(0).outerHTML的打印结果如下:

1c83f106b6e8001207cbfa7d34b86052.png

get(1)、get(2)…依次可以打印出接下来的html元素代码,我开始考虑循环获取,但是循环次数的获取回到了原地,根本取不到,有兴趣的可以尝试。

既然jquery的思路断了,我就开始考虑原生js的方法,在网上找了个:var $p = document.createElement("p");//创建一个p元素对象

$p.innerHTML = content;//往p里填充html

打印出来的结果非常好:

7b60951fbdf854429377caa80431b28f.png

前面绕的弯两行代码就解决了,原生js真棒!

但是我还是习惯用jquery,又把它转换成jquery了,方便下面的选择器和循环var $v = $($p);//从dom对象转换成jquery对象

3、选择器找到img元素,获取src值$.each($v.find("img"),function (v,i) {

console.log("src======"+i.src);

});

i.src可以直接获取图片url地址,成功!

下面为大家补充

js如何获取ueditor里面的第一张图片

想获取ueditor里面第一张图片作为缩略图,怎么获取,ueditor里面全部是以文本方式储存的

UE.getPlainTxt() 可获取到编辑器中的纯文本内容,有段落格式

UE.getContentTxt() 可获取到编辑器中的纯文本内容,没有段落格式;

ueditor 没有提供直接获取图片的功能,可以UE.getContent() 获取全部内容,使用正则表达式 筛选出图片,我提供一个使用JAVA写的筛选方法,前台js代码类似:Pattern p_img = Pattern.compile("(]+src\s*=\s*'\"['\"][^>]*>)");

Matcher m_img = p_img.matcher(content);

while (m_img.find()) {

String img = m_img.group(1); //m_img.group(1) 为获得整个img标签 m_img.group(2) 为获得src的值

}

可以打开ueditor.all.min.js 查看,里面有所有支持的方法 注释也都很明白

ueditor发布文章获取第一张图片为缩略图实现方法

正则匹配图片地址获取第一张图片地址

此为函数 在模块或是全局Common文件夹中的function.php中/**

* [getPic description]

* 获取文本中首张图片地址

* @param [type] $content [description]

* @return [type]     [description]

*/

function getPic($content){

if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) {

$str=$matches[3][0];

if (preg_match('/\/Uploads\/images/', $str)) {

return $str1=substr($str,7);

}

}

}

用法演示$content=I('post.body');//获取富文本编辑器内容

$info=getPic($content);//使用函数 返回匹配地址 如果不为空则声称缩略图

if(!$info==null){

$thumb=$info.'thumb240x160.png';

$image = new \Think\Image();//实例化图像处理,缩略图功能

$image->open($info);// 生成一个居中裁剪为240*160的缩略图

$unlink=$image->thumb(240, 160,\Think\Image::IMAGE_THUMB_CENTER)->save($thumb);

}else{

$thumb='';

}

dedecms中的js获取fckeditor中的图片function get_firstimg(){

//var c=document.getElementById('body').value;

var c=FCKeditorAPI.GetInstance('body').GetXHTML(true);

if(c){

        var fimg=c.match(//);

if(fimg[2]){

document.getElementById('picname').value=fimg[2];

if(document.getElementById('ImgPr'))document.getElementById('ImgPr').src=fimg[2];//预览

if(document.getElementById('picview'))document.getElementById('picview').src=fimg[2];//预览

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值